CMAKE-添加库don';每小时最后一轮都不工作
我有一个CMakelist.txt:CMAKE-添加库don';每小时最后一轮都不工作,cmake,logic,Cmake,Logic,我有一个CMakelist.txt: cmake_minimum_required(VERSION 3.12) project(test) set(TEST_HOME ${CMAKE_CURRENT_SOURCE_DIR}) message("test SDK home directory: " ${TEST_HOME}) set(a true) list(APPEND plugins a) set(b true) list(APPEND plugins b) set(c true) li
cmake_minimum_required(VERSION 3.12)
project(test)
set(TEST_HOME ${CMAKE_CURRENT_SOURCE_DIR})
message("test SDK home directory: " ${TEST_HOME})
set(a true)
list(APPEND plugins a)
set(b true)
list(APPEND plugins b)
set(c true)
list(APPEND plugins c)
add_executable(test main.c)
foreach(plugin IN LISTS plugins)
if(${${plugin}})
file(GLOB ${plugin}-SRC "${TEST_HOME}/plugins/${plugin}/src/*.c")
message(${${plugin}-SRC})
add_library(slt_${plugin} SHARED ${${plugin}-SRC})
message(${plugin})
target_link_libraries(test slt_${plugin}.so)
endif()
endforeach()
TLDR:我转向创建库并将它们链接到我的可执行文件
但是我的上一个库没有创建,由这个CMakelist.txt生成的Makefile的输出是:
Scanning dependencies of target slt_c
[ 12%] Building C object CMakeFiles/slt_c.dir/plugins/c/src/c.c.o
[ 25%] Linking C shared library libslt_c.so
[ 25%] Built target slt_c
Scanning dependencies of target slt_b
[ 37%] Building C object CMakeFiles/slt_b.dir/plugins/b/src/b.c.o
[ 50%] Linking C shared library libslt_b.so
[ 50%] Built target slt_b
[ 62%] Linking C executable minko
/usr/bin/x86_64-linux-gnu-ld: cannot find -lslt_a
/usr/bin/x86_64-linux-gnu-ld: cannot find -lslt_b
/usr/bin/x86_64-linux-gnu-ld: cannot find -lslt_c
当我把a变成false时。这是谁不建造。
我真的不知道这是什么原因,我只是开始做一些测试。谢谢。你会有这么多的插件以至于循环很重要吗?手动指定这些共享库时,说明也可能更易于阅读。如果在项目中创建库,请使用目标的名称链接该库:
target\u link\u libraries(test slt\u${plugin})
,而不是库文件名。使用目标名称时,CMake不仅会自动调整链接器标志,还会创建依赖项,因此只有在构建库之后才会执行链接。