2014-09-29 13 views
1

在visual studio 2012的窗口中使用cmake,我需要獲取導入庫的位置。我可以讓我的dll目標的位置爲:CMAKE:獲取窗口的位置導入庫

ADD_LIBRARY(foo SHARED ${CXX_SRCS}) 
GET_TARGET_PROPERTY(FOO_NAME foo LOCATION) 

現在,我要foo.dll的路徑,我需要的路徑導入庫,foo.lib。有這個cmake屬性嗎?如果是這樣,那麼最低要求的cmake是多少?

+0

你確實需要你的位置嗎?您可以通過在'TARGET_LINK_LIBRARIES()'中指定目標名稱來直接鏈接庫。你可以用'install(TARGETS ... RUNTIME ... LIBRARY)'安裝庫的兩個部分。 – Peter 2014-09-29 16:54:01

+0

是的,我需要的位置。我不想使用安裝目標,我希望將其作爲構建後步驟。 – Juan 2014-09-29 17:41:46

回答

1

要創建生成後步驟依賴於其他目標的進口的.lib文件,用「發電機表達」 TARGET_LINKER_FILEadd_custom_command

$<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)

您還可以查看目標屬性ARCHIVE_OUTPUT_DIRECTORY,但VS2012生成將CONFIGURATION追加到這個目錄,你必須手動設置它。

+0

謝謝。我一直在看目標屬性,而不是生成器表達式。 – Juan 2014-09-30 14:18:41