某些背景
我正在尝试交叉编译RaspberryPi 3B的应用程序。我已经安装了dockcross,如下所示:
docker run --rm dockcross/linux-armv6 > ./dockcross
chmod +x ./dockcross
mv ./dockcross ~/bin/
在主机macOS high sierra上,我可以毫无问题地进行编译和链接。
问题
首先,我运行:dockcross cmake -Bbuild -H.
。在运行dockcross make
之后,编译器自然会给出错误:<some-lib/some-lib.h> not found
。
此后,我通过dockcross bash
访问了容器bash,并将所有缺少的库及其标头安装到了容器中。不幸的是,错误是相同的,编译器无法找到标头。我的CMakeLists.txt
的内容:
cmake_minimum_required (VERSION 3.0)
project (myLibProject)
include_directories(
.
/usr/include
)
link_directories(
/usr/lib
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
file(GLOB SOURCES
"include/*.h"
"src/*.cpp"
)
add_library(myLibProject ${SOURCES})
target_link_libraries(myLibProject some-lib)
空运行make-make -n
-我看不到当前文件夹以外的文件夹的include指令-.
-文件夹:
/usr/bin/arm-linux-gnueabihf-g++ -I/work/. -std=c++11 -o CMakeFiles/myLibProject.dir/src/src1.cpp.o -c /work/src/src1.cpp
如果我通过添加-I/usr/include
手动运行以上命令,则编译器将成功编译src1.cpp.o
问题
为什么CMake尚未选择其他目录?它们存在于容器linux中。
我的项目有很多依赖性,例如boost。我应该如何修改CMakeLists.txt
以使用Dockcross正确编译项目?