Tôi có một dự án với cách bố trí như sau:CMake không thể tìm thấy bao gồm các file
/build
/source
+--- CMakeLists.txt
|
+--- /bin
| +--CMakefiles.txt
| +--main.cpp
|
+--- /jsoncpp
| +--- /json
| | +--json.h
| | +--json-forwards.h
| |
| +--jsoncpp.cpp
| +--CMakeLists.txt
|
+--- /jsonreader
+-- jsonreader.cpp
+-- jsonreader.h
+-- CMakeLists.txt
Trong /source/CMakeLists.txt tôi có dòng mã này;
include_directories(jsoncpp jsonreader)
nhưng sau đó chạy 'cmake -G "MSYS Makefiles" ../source' trong xây dựng thư mục tạo ra Makefile và sau đó chạy 'make' tạo ra các lỗi sau:
Scanning dependencies of target updater
[ 33%] Building CXX object bin/CMakeFiles/updater.dir/main.cpp.obj
In file included from k:/own-projects/updater-Project/withJsonCpp/source/bin/main.cpp:2:0:
../source/jsonreader/jsonreader.h:2:18: fatal error: json.h: No such file
or directory
compilation terminated.
make[2]: *** [bin/CMakeFiles/updater.dir/main.cpp.obj] Error 1
make[1]: *** [bin/CMakeFiles/updater.dir/all] Error 2
make: *** [all] Error 2
những gì tôi đang làm sai và làm thế nào tôi có thể giải quyết điều này?
Bạn không nên thêm jsoncpp/json vào bao gồm của mình. Hoặc trong các tệp C++ của bạn, bạn có sử dụng một đường dẫn tương đối không? – drescherjm
@drescherjm: trong C++ của tôi, tôi chỉ sử dụng "include" header.h "bất kể vị trí của tiêu đề là sai? Thêm jsoncpp/json không hoạt động. – Amani
Tôi tin rằng bạn muốn thêm tiền tố cho các đường dẫn bao gồm của bạn với $ { CMAKE_SOURCE_DIR} – drescherjm