Travis CI 找不到头文件
Travis CI does not find header files
基本上我想学习CMake和GTest。最重要的是,我想尝试CI,我已经将我的简单项目添加到Travis CI和AppVeyor中。该项目在我的本地机器上编译得很好(使用 vs 2017 和 g++ 进行测试,不确定版本,因为我现在不在它附近(以及 AppVeyor 上。
该项目由几个编译为静态库的标头组成,可执行用于"手动测试"静态库和 gtest(目前没有测试,只是一个模板(。结构如下所示:
.
+-- .appveyor.yml
+-- .travis.yml
+-- CMakeLists.txt
+-- main
| +-- main.cpp [The manual testing exec]
| +-- CMakeLists.txt
+-- include
| +-- Utility.h
| +-- CMakeLists.txt
| +-- Other header files to compile to static library
+-- test
| +-- CMakeLists.txt
| +-- CMakeLists.txt.in
| +-- testutility
| | +-- main.cpp [sample exe file for gtest, not used yet]
| | +-- CMakeLists.txt
在 Travis CI 上构建期间,它找不到静态库的标头。我试过使用 include_directories(".")
在主要的CMakeList上。
主要CMake列表.txt
cmake_minimum_required (VERSION 3.1)
project (primlibrary)
enable_testing()
include_directories(".")
add_subdirectory(include)
add_subdirectory(main)
add_subdirectory(test)
特拉维斯 CI 错误消息
CMake Error at include/CMakeLists.txt:12 (add_library):
Cannot find source file:
Utility.h
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
-- Generating done
-- Build files have been written to: /home/travis/build/SoIAS/PrimLibrary/build
The command "cmake .." exited with 1.
$ make
Scanning dependencies of target prim_library
[ 9%] Linking CXX static library libprim_library.a
[ 9%] Built target prim_library
Scanning dependencies of target manualtestingapp
[ 18%] Building CXX object main/CMakeFiles/manualtestingapp.dir/main.cpp.o
/home/travis/build/SoIAS/PrimLibrary/main/main.cpp:2:29: fatal error: include/Utility.h: No such file or directory
#include "include/Utility.h"
并包括/CMakeLists.txt:
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(prim_library_srcs
ForwardList.h
LinkedList.h
Utility.h
tempfix.cpp
)
add_library(prim_library STATIC ${prim_library_srcs})
set_target_properties(prim_library PROPERTIES LINKER_LANGUAGE CXX)
target_include_directories(prim_library PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
CI 和 git 链接:- 特拉维斯CI最后构建- 应用构建- Github
你知道我做错了什么吗?
这个问题在发布后十几分钟就解决了。本地的 Utility.h 文件将第一个字母大写,而 git 上的文件是小写的。通过使用 git 命令在 git 上大写文件的第一个字母来解决: git mv include/utility.h include/Utility.h
相关文章:
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 找不到QtResource文件中的文件
- "assimp/config.h"找不到,但它在文件夹中
- C++系统找不到指定的文件错误
- 在 Ubuntu 18.04 上,我编译的 cpp 可执行文件找不到 VTK7 依赖项
- Pyinstaller创建的可执行文件找不到Meipass目录中存在的DLL
- 如何修复"QtCharts"库文件找不到/无法包含<QtCharts>?
- 为什么生成文件找不到包含目录
- 我的类在 .h 文件中定义,.cpp文件找不到
- 生成文件找不到 .o 文件
- 部署Qt-dll文件-找不到windows插件,尽管平台/qwindows.dll存在,因此存在libEGL和libGL
- 资源中的文件找不到本地文件
- C++包括 C 文件(找不到 typedef)
- C++生成文件找不到文件
- Xcode 6.0.1版gmp.h头文件找不到,尽管gmp.h和gmpxx.h在local/include中
- 生成文件找不到同一目录中的文件
- 我的生成文件找不到我的头目录
- 包含的文件 <> 找不到 " " 中包含的文件
- 突然间,Ogre头文件找不到(DEVELOPER_DIR随着Xcode更新而改变)
- 尝试在Xcode 5中包含头文件.找不到文件