Dan*_*urn 4 c++ linux cmake cross-compiling
cmake 由于某种原因忽略了我的工具链文件:
lynxos.cmake:
set(CMAKE_SYSTEM_NAME LynxOS)
set(CMAKE_CROSSCOMPILING TRUE)
set(CMAKE_CXX_COMPILER /usr/los178/2.3.0/x86_dev/cdk/linux-coff-x86/usr/bin/g++)
set(CMAKE_C_COMPILER /usr/los178/2.3.0/x86_dev/cdk/linux-coff-x86/bin/gcc)
set(CMAKE_FIND_ROOT_PATH /usr/los178/2.3.0/x86_dev/cdk/linux-coff-x86/)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
Run Code Online (Sandbox Code Playgroud)
对 cmake 的调用:
cmake -DCMAKE_TOOLCHAIN_FILE=lynxos.cmake -DUSE_TINY_XML=TRUE
Run Code Online (Sandbox Code Playgroud)
CMAKE_CXX_COMPILER 仍然默认使用我的默认编译器。从命令行使用 -D 设置 CMAKE_CXX_COMPILER 有效,但 cmake 给出警告:
You have changed variables that require your cache to be deleted.
Configure will be re-run and you may have to reset some variables.
The following variables have changed:
CMAKE_C_COMPILER= <path to compiler>
CMAKE_CXX_COMPILER= <path to compiler>
Run Code Online (Sandbox Code Playgroud)
然后我的其他 cmake 变量变得未定义。
尝试删除 CMakeCache.txt 文件。不工作。使用 CMake 2.8.11。知道出了什么问题吗?
每当您运行 cmake 时,请始终使用干净的目录。如果你ls -a会看到很多缓存文件。如果您尝试再次运行 cmake,它可能会使用很多缓存文件。我最近也遇到了这个问题。只是cd ..; rm -rf build/**;cd build为了清理你的目录并再次运行 cmake