这是一个创建于 2341 天前的主题,其中的信息可能已经有所发展或是发生改变。
如图所示文件夹
project_idr/
│
├── build
│
├── src
│
└── tests
目标:
src 为源文件( src )目录,编译为一个静态库文件;
tests 为执行文件( bin )目录,链接 src 文件夹下的编译好的库文件,编译成多个执行文件;
build 为 cmake 的文件夹。
cmakelists.txt
PROJECT(bns)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(tests)
src/cmakelists.txt
... //省略一些子文件夹定义
ADD_LIBRARY(bns STATIC ${BNS_DIR} ${COM_DIR} ${CRC_DIR} ${MASTER_DIR} ${SLAVE_DIR})
tests/cmakelists.txt
LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/src)
ADD_EXECUTABLE(bin main.c ${PROJECT_BINARY_DIR}/src/liba.a)
TARGET_LINK_LIBRARIES(bin ${PROJECT_BINARY_DIR}/src/liba.a)
那么问题来了:
1,去掉 ADD_SUBDIRECTORY(tests)语句,仅仅编译成一个库文件,可以正常生成库文件;然后,再加入前面的语句,继续编译就可以得到 bin 文件。但是想直接编译得到 bin 文件,就提示找不到库文件。每次编译两次肯定是有问题的,请教各位大佬。
CMake Error at tests/CMakeLists.txt:2 (ADD_EXECUTABLE):
Cannot find source file:
1 条回复 • 2018-08-09 10:57:40 +08:00
|
|
1
opiviqo 2018-08-09 10:57:40 +08:00
为什么排版乱了。。。
|