提问人:Dominic Sesto 提问时间:10/17/2023 更新时间:10/18/2023 访问量:49
CMake:无法链接到同一项目中的目标
CMake: Can't link to targets within same project
问:
我正在尝试将 library2 链接到 library1,两者都在同一个源代码树中:
MyProject
├── CMakeLists.txt
├── Library1
│ └── CMakeLists.txt
│ └── include
│ └── foo.h
│ └── bar.h
│ └── src
│ └── foo.cpp
│ └── bar.cpp
├── Library2
│ └── CMakeLists.txt
│ └── include
│ └── baz.h
│ └── src
│ └── baz.cpp
CMakeLists.txt:
cmake_minimum_required (VERSION 3.17.0)
project(MyProject)
option(BUILD_SHARED_LIBS ON)
add_subdirectory(Library1)
add_subdirectory(Library2)
库1/CMakeLists.txt:
project(Library1)
add_library(library1
src/foo.cpp
src/bar.cpp
)
target_include_directories(library1 PUBLIC
${CMAKE_SOURCE_DIR}/Library1/include
)
库2/CMakeLists.txt:
project(Library2)
add_library(library2
src/baz.cpp
)
target_include_directories(library2 PUBLIC
${CMAKE_SOURCE_DIR}/Library1/include
${CMAKE_SOURCE_DIR}/Library2/include
)
target_link_libraries(library2 PUBLIC library1)
但是当 library2 进入链接阶段时,我收到此错误:
usr/bin/ld: cannot find -llibrary1
链接器似乎没有在源代码树中查找 。我尝试过直接将路径添加到目标中,并通过(也尝试过)。我也不能使用 as 不存在,直到它通过运行 .library1
CMAKE_PREFIX_PATH
link_directories()
target_link_directories()
find_library()
library1
make
如何链接到将作为同一项目的一部分生成的目标?我觉得这应该有效。
答: 暂无答案
上一个:为什么模板只能在头文件中实现?
评论
project