我正在尝试编写CMake代码以在Visual Studio 2013应用程序中包含库。根据我是构建32位还是64位,库存在不同的路径。所以我写这个:
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(MY_LIBRARY "${CMAKE_SOURCE_DIR}/src/foo/x64/mylib.lib")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(MY_LIBRARY "${CMAKE_SOURCE_DIR}/src/foo/mylib.lib")
endif()
MESSAGE(STATUS "MY_LIBRARY is ${MY_LIBRARY}")
target_link_libraries(
myapp
otherlibs
${MY_LIBRARY}
)
当我在CMake文件中显示MY_LIBRARY
的值时,它会显示正确的绝对路径,但是当我打开生成的Visual Studio项目文件并检查链接器设置时,路径已转换为相对路径之一。
到底发生了什么事?