【发布时间】:2020-03-18 23:52:42
【问题描述】:
我正在尝试首先创建一个静态库,然后使用 CMake 将其链接到可执行文件。我的项目文件结构如下:
├── CMakeLists.txt
├── build
├── lib
│ ├── CMakeLists.txt
│ ├── build
│ ├── include
│ │ └── Point.hpp
│ └── src
│ └── Point.cpp
└── mainApp.cpp
我首先是这样构建库的。
cmake_minimum_required(VERSION 2.8.9)
project(CAST3)
set(CMAKE_BUILD_TYPE Release)
include_directories(include)
file(GLOB SOURCES "src/*.cpp")
add_library(CAST3 STATIC ${SOURCES})
但是,当我尝试将库链接到我的可执行文件时出现错误。
这是我的可执行文件
#include"Point.hpp"
int main(int argc, char *argv[]){
Point p = Point(1,2,3);
return 0;
}
这是我的 CMake 文件,用于将库链接到可执行文件。
cmake_minimum_required(VERSION 2.8.9)
project (CAST3)
set ( PROJECT_LINK_LIBS libCAST3.a )
link_directories( ${CMAKE_CURRENT_SOURCE_DIR}/lib/build)
add_executable(libtest mainApp.cpp)
target_link_libraries(libtest ${PROJECT_LINK_LIBS} )
当我运行时,我得到了这个错误
/mainApp.cpp:1:9: fatal error: 'Point.hpp' file not found
#include"Point.hpp"
^~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/libtest.dir/mainApp.cpp.o] Error 1
make[1]: *** [CMakeFiles/libtest.dir/all] Error 2
make: *** [all] Error 2
我错过了什么?
【问题讨论】:
-
cmake_minimum_required(VERSION 2.8.9)- 你确定你使用的是旧的 cmake 吗?这是从 2012 年开始的。