我有以下设置:
在文件夹lib
中:
#ifndef LIB_H_
#define LIB_H_
int fun(int i);
#endif
#include "lib.h"
int fun(int i) {
return i;
}
add_library(lib SHARED lib.c)
在目录src
中:
#include "lib.h"
int main () {
return fun(0);
}
add_executable(main main.c)
target_link_libraries(lib)
最后在他们共同的父目录中:
include_directories(lib)
add_subdirectory(lib)
add_subdirectory(src)
当我尝试使用
构建项目时cmake
make
我收到以下链接器错误:
CMakeFiles/main.dir/main.o: In function `main':
main.c:(.text+0xa): undefined reference to `fun'
我在这里做错了什么?
答案 0 :(得分:2)
您在target
的来电中忘记了target_link_libraries
参数,它应该是:
target_link_libraries(main lib)