Yun*_*Wen 9 compilation cmake subdirectory
这是我的CMakeLists.txt:
ADD_SUBDIRECTORY(third)
ADD_SUBDIRECTORY(utils)
ADD_SUBDIRECTORY(rpc)
Run Code Online (Sandbox Code Playgroud)
但是目录“ rpc”将在目录“ utils”之前进行编译,实际上“ rpc”取决于“ utils”,因此我将得到一个链接错误。
如何在“ utils”之后进行“ rpc”的编译?
谢谢。
当您使用target_link_libraries()函数并将其他目标名称传递给它时,CMake 会自动将此目标设置为依赖项。您还可以使用add_dependencies()手动指定依赖项。
另请注意,源代码编译的顺序与您的问题无关。链接错误(我猜,您看到的是“未定义的引用”)是因为您没有正确链接目标。
小智 6
如果“rpc”依赖于“utils”:
实用程序 CMAKELISTS.txt
project(utils)
add_library (utils SHARED ${PROJECT_SOURCE_LIST})
Run Code Online (Sandbox Code Playgroud)
rpc CMAKELISTS.txt
project(rpc)
add_library (rpc SHARED ${PROJECT_SOURCE_LIST})
# must add this command to scan dependencies of target rpc
add_dependencies (rpc utils)
target_link_libraries (${TEST_SOURCE_FILE_NAME} libutils.so)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6985 次 |
| 最近记录: |