【发布时间】:2015-03-11 17:05:02
【问题描述】:
这是一个例子,我今天用谷歌搜索了很多,但我找不到完成这件事的好方法。
例如,我遵循了此链接中所写的内容:http://mirkokiefer.com/blog/2013/03/cmake-by-example/
我有
/Build
/Src
=> main.c
/Lib
=> File.c
=> File.h
我在 Src 目录中有一个 CMakeLists.txt
SET(SOURCES
main.c
)
add_subdirectory(Lib)
ADD_EXECUTABLE(${PROJECT_NAME} ${SOURCES})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} lib)
在 Lib 目录中:
set(LibSrc
File.c
)
set(LibHead
File.h
)
add_library(lib STATIC ${LibSrc} ${LibHead})
target_include_directories(lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
当我编译项目时,一切都正确编译,但是当 gcc 将库与项目的其余部分链接时,我收到如下错误:
main.cpp:(.text+0x10): undefined reference to `test()`
这让我发疯......关于我做错了什么的任何提示?谢谢
【问题讨论】:
-
make VERBOSE=1的输出是什么?