我目前正在为cmake奋斗。
我将Cmake用于具有GCC的嵌入式平台。
我的项目分为几个模块。每个模块都内置在静态库中。在链接时,所有这些库都被收集并链接到一个二进制文件中。
问题:我为某些单元测试创建了一个新文件夹。所有资源都构建在库libunit_tests.a中。(我检查了库是否实际上已创建)。
但是,在我的链接器调用中,其他库传递给了链接器,但是我的却被忽略了,从而导致未定义的引用错误。
我的文件夹结构如下
* unit_tests /
* unit_tests / inc
* unit_tests / src
有一个Cmake文件位于 -/unit_tests/CMakeLists.txt
我的实际CMakeLists.txt文件非常简单
include_directories("./inc")
set(module_name "unit_tests")
set(MODULE_SOURCES
./inc/active_tests.h
./inc/Run_All_Tests.h ./src/Run_All_Tests.c
)
###########################
# add library
###########################
if(MODULE_SOURCES)
# add files to library
add_library("${module_name}"
${MODULE_SOURCES})
target_link_libraries("${module_name}"
-Wl,--start-group
-Wl,--end-group)
endif()
如何将这个库传递给链接器以解决未定义的引用错误?
我认为这是通过add_libary和target_link_libraries完成的吗?