Travis CI找不到头文件

戴维德·维多瓦克

基本上我想学习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(".")在主要的CMakeLists上使用

主要的CMakeLists.txt

cmake_minimum_required (VERSION 3.1)
project (primlibrary)

enable_testing()

include_directories(".")

add_subdirectory(include)
add_subdirectory(main)
add_subdirectory(test)

Travis 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最后构建- Appveyor构建- Github上

你知道我在做什么错吗?

戴维德·维多瓦克

发布后十几分钟,该问题得到了解决。Utility.h文件的本地首字母大写,而git上的小写字母。通过使用git命令在git上将文件的首字母大写来解决:git mv include/utility.h include/Utility.h

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章