2014-09-29 5 views
1

Visual Studio 2012의 Windows에서 cmake를 사용하면 가져 오기 라이브러리의 위치를 ​​가져와야합니다. 이제CMAKE : 가져 오기 위치 가져 오기 라이브러리

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

내가 foo.dll를 할 수있는 경로를 가지고, 내가 가져 오기 lib 디렉토리에 foo.lib을 경로를 필요 I는 내 DLL 대상의 위치를 ​​얻을 수 있습니다. 이 쉐이크 속성이 있나요? 그렇다면 최소 cmake는 무엇입니까?

+0

실제로 위치가 필요합니까? 'TARGET_LINK_LIBRARIES()'에 대상 이름을 지정하여 직접 라이브러리에 링크 할 수 있습니다. 'install (TARGETS ... RUNTIME ... LIBRARY)'로 라이브러리의 두 부분을 모두 설치할 수 있습니다. – Peter

+0

예, 위치가 필요합니다. 설치 대상을 사용하고 싶지 않습니다. 빌드 후 단계로 사용하고 싶습니다. – Juan

답변

1

다른 대상의 수입 lib 디렉토리 파일 사용 "발전기 표현"TARGET_LINKER_FILEadd_custom_command의에 따라 빌드 후 단계를 만들려면 :

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

또한 target 속성 ARCHIVE_OUTPUT_DIRECTORY에 볼 수

하지만 VS2012 발생기 CONFIGURATION을이 디렉토리에 추가하므로 수동으로 설정해야합니다.

+0

고맙습니다. 나는 생성자 표현식이 아닌 대상 속성을보고있었습니다. – Juan