У меня есть проект на C ++, который содержит файлы h и cpp. Раньше я строил проект в IDE Netbeans, у него есть собственный Makefile, затем я решил создать проект с помощью cmake. Я оставил только исходный код. У меня также есть внешние каталоги включения в / home / data / lib
Дерево проекта:
.
├── build
├── CMakeLists.txt
├── devices
│ ├── RK.cpp
│ └── RK.h
├── LogWriter
│ ├── LogWriter.cpp
│ └── LogWriter.h
├── main.cpp
└── structs
└── RK_structs.h
Я создал CMakeLists.txt:
cmake_minimum_required(VERSION 3.2.2)
project(wise_RK)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(SOURCES main.cpp)
include_directories(
structs
devices
LogWriter
/home/data/lib/wise_versioning
/home/data/lib/wisenet
/home/data/lib/wise_log
/home/data/lib/wise_rs_device
/home/data/lib/json
)
add_executable(wise_rk ${SOURCES})
add_definitions(-DSOME_IMPORTANT_DEFINITION)
Тогда я сделал это :
mkdir -p build
cd build
cmake ..
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/anzipex/Downloads/wise_RK/build
Тогда я сделал:
make
Результаты:
[100%] Building CXX object CMakeFiles/wise_rk.dir/main.cpp.o
In file included from /home/awise/Downloads/wise_RK/main.cpp:15:0:
/home/awise/Downloads/wise_RK/devices/RK.h:16:32: fatal error: structs/RK_structs.h: No such file or directory
#include "structs/RK_structs.h"
^
compilation terminated.
make[2]: *** [CMakeFiles/wise_rk.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/wise_rk.dir/all] Error 2
make: *** [all] Error 2
Что не так?