CMAKE:库缺少头文件
CMAKE: Library Missing Header File
我有一个子目录,用于创建一个共享库,该库构建到我的根项目的文件夹中。我把它链接到我的cmake文件中,没有任何问题。然而,无论我如何重新配置,编译器都找不到头文件
文件夹结构类似于:
根
- 构建
- lib
- src
- 库
- 试验
- library_test
本质上,我想将编译的库链接到lib文件夹,以链接到它的测试。然而,无论我如何配置CMakelists,它在编译过程中都找不到库的头文件。但是,cmake过程中没有任何错误。实际错误消息如下所示:
致命错误:找不到"file.h"文件
我最近的帖子尝试:
find_library(LESSIONS_LIBS chp_two PATHS {CMAKE_SOURCE_DIR}/build/lib/)
add_library(test_chptwo SHARED ${TEST})
target_link_libraries(test_chptwo gtest LESSIONS_LIBS)
有什么想法吗?
编辑一个
以下是我更新的CMakelists:
图书馆CMakeLists:
cmake_minimum_required(VERSION 3.7.0)
#Project Name
project (chp_two)
#Build Problem Sets as Library
#Header Files
include_directories(include ${CMAKE_CURRENT_SOURCE_DIR}/inc/)
#Source files
set(LIB random_queue.cpp ${include})
add_library(chp_two SHARED ${LIB})
测试CMakeLists:
cmake_minimum_required(VERSION 3.7.0)
#Project Name
project(TESTING)
#Setting Test sources
set(TEST test_random_queue.cpp)
#Search for libraries
find_library(LESSIONS_LIBS chp_two PATHS {CMAKE_SOURCE_DIR}/build/lib/)
enable_testing()
#turn test into a library
add_library(test_chptwo SHARED ${TEST})
target_link_libraries(test_chptwo gtest LESSIONS_LIBS)
如果没有cmake文件,很难确定。但是,您会错过include_directories调用吗?此调用将设置要编译的.h文件的路径。
include_directories (path_to_my_headers)
以下是我在评论中所指内容的CMAKE示例。无论如何,相同的概念或多或少适用于两个libs/exe。
cmake_minimum_required(VERSION 3.7.0)
#
project (MyProj)
#
include_directories (.)
include_directories (path_to_a_dir_with_files_I_need)
include_directories (path_to_another_dir_with_files_I_need)
#
file (GLOB HEADERS *.h)
file (GLOB SOURCES *.cpp)
# Finish with your CXX flags, add_executable, target_link_libraries, install, etc
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何使用CMake编译.proto文件来生成.grpcp.pb.cc和.grpc.pb.h文件
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 现代CMake(3.8+)-FindCUDA已弃用,非.cu文件呢
- 如何通过Conan和CMake找到用于pkg配置的.pc文件
- MinGw 无法从 cmake 编译测试文件
- cmake:添加要搜索头文件的目录
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 使用 Makefile 中的头文件编译 Pybind (不使用 cmake)
- CMake:在其他目录中找不到我的头文件
- 在Cmake构建CmakeList.txt中读取/解析XML文件
- 无法使用 CMake 从其他文件夹添加源文件
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 使用 Cmake 在 Qt Creator 中显示头文件
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- 告诉CMake链接到自定义文件夹中的Boost
- Vcpkg Pango CMake 构建失败缺少头文件
- 从不同的文件cmake调用类