我有一个具有以下布局的项目:
.
|_include
| |_GLFW
| |_glfw3.h
|_lib
| |_glfw3.lib
|_src
| |_main.cpp
|_build
|_CMakeLists.txt
CMakeLists.txt看起来像这样:
cmake_minimum_required( VERSION 3.14 )
project( example LANGUAGES CXX )
set( INCLUDE_HEADERS
include/GLFW/glfw3.h
)
set( SRC
src/main.cpp
)
source_group( include FILES ${INCLUDE_HEADERS} )
source_group( src FILES ${SRC} )
add_executable( example ${INCLUDE_HEADERS} ${SRC} )
target_link_libraries( example "${CMAKE_BINARY_DIR}/lib/glfw3.lib" )
我转到./build
并键入cmake ..
这将按预期创建Visual Studio 2017解决方案。但是在example
项目中,它把glfw3.lib
的依赖路径列为lib\glfw3.lib
,并说找不到它。
据我了解,CMAKE_BINARY_DIR
应该代表项目的绝对路径,这就是我尝试使用message
打印出来的结果。为什么在Visual Studio解决方案中将绝对路径更改为(错误的)相对路径?
我还尝试使用CMAKE_SOURCE_DIR
,CMAKE_CURRENT_BINARY_DIR
和CMAKE_CURRENT_SOURCE_DIR
,它们全部将绝对路径更改为相对路径。