编写工程主文件CMakeLists.txt
PROJECT(NEWHELLO)
ADD_SUBDIRECTORY(src)
编写src/CMakeLists.txt
ADD_EXECUTABLE(main main.c)
PROJECT(NEWHELLO)
ADD_SUBDIRECTORY(src)
编写src/CMakeLists.txt
ADD_EXECUTABLE(main main.c)
仍然建立build目录,使用cmake ..方式构建。
set(SRC_LIST main.cpp)
MESSAGE(STATUS "This is SOURCE dir")
ADD_EXECUTABLE(pjsample ${SRC_LIST})
引入头文件搜索路径。
INCLUDE_DIRECTORIES(/..../include/) 即main.cpp中的调用的#include <aaa.h>在该include文件夹下。
会去掉error: hello.h: 没有那个文件或目录 这种错误,但是会出现
main.c:(.text+0x12): undefined reference to `HelloFunc'
因此引入link到共享库
LINK_DIRECTORIES(/..../lib/)
TARGET_LINK_LIBRARIES(main libhello.a)
顺序不要弄错就是target_link_libraries需要在add_executable后面执行。
TARGET_LINK_LIBRARIES(main hello)
也可以写成
TARGET_LINK_LIBRARIES(main libhello.so) 都是link libhello.so