none
vs2013community : Link error when link project by project dependencies of GUI RRS feed

  • 問題

  • 請問透過vs2013GUI設定的project dependencies是否有問題?

    我建造一個resolution 包含兩個專案: vs2013 (exe) , slib (static)

    1. 只是單純的在main中呼叫slib中的function,所以我想透過設定project dependencies來建立相依性,

    避免直接設定lib path和lib name, 但當我設定完後直接build時依然會出現link error, 請問我是否有哪裡沒有注意到造成?

    以前vs2008好像沒類似問題,從GUI的link information中還真得沒看到library,真是奇怪

    /OUT:"D:\tmp\vs2013\Debug\vs2013.exe" /MANIFEST /NXCOMPAT /PDB:"D:\tmp\vs2013\Debug\vs2013.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"D:\tmp\vs2013\Debug\vs2013.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\vs2013.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1

    1>------ Build started: Project: vs2013, Configuration: Debug Win32 ------
    1>  vs2013.c
    1>vs2013.obj : error LNK2019: unresolved external symbol _slib_func1 referenced in function _main
    1>D:\tmp\vs2013\Debug\vs2013.exe : fatal error LNK1120: 1 unresolved externals

    未經過帳戶驗證不能貼圖

    2. header path也是要手動設定而不是透過project dependencies,請問這樣正常嗎?

    2015年4月1日 上午 07:44

解答

所有回覆

  • 光靠設定project dependency無法解決連結問題, 您必須:

    1) 設定lib Path

    2) 設定lib name或用#pragma comment指定lib name

    2015年4月2日 上午 04:10
  • 感謝回覆,

    我原本的想法也是如你說的,不過想試試IDE的功能所以卡在這裡很久。

    昨天又查了很多資料,原來是vs2010開始修改已往project dependencies的方式,

    如果使用以前的方式設定將會無效,新的方式改成在common properties -> reference -> add new reference(將相關proj加入),這裡設定後重linking中就會看到相關參照得library,include header path依然要自行設定,我想大概只能這樣。看來要適應新版vs最好去查一下以前的變異,實在是反應太慢了XD.

    參考資料 MSDN 搜尋底下資料(還沒通過認證不能有連結)

    flexible-project-to-project-references
    visual-studio-2010-c-project-upgrade-guide


    2015年4月2日 上午 06:38