linux - 交叉编译和CMake?

标签 linux gcc cmake cross-compiling

我正在为 ARM 构建一个嵌入式 Linux 系统,其中一个应用程序正在使用 CMake:

cmake \
    -D CMAKE_C_COMPILER=/opt/arm-toolchain/bin/arm-linux-gnueabihf-gcc \
    -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_SYSTEM_NAME=Linux \
    -D CMAKE_INSTALL_PREFIX=/mnt/system_rootfs ../app_src_dir

如果 CMake 像这样执行,它会在整个文件系统中搜索库、头文件等。

如何限制 CMake 仅在 /opt/arm-toolchain/mnt/system_rootfs 中搜索头文件、库和程序?

构建系统为 Debian Wheezy,CMake 版本为 2.8.9

最佳答案

您可以使用 CMAKE_INCLUDE_PATH 和 CMAKE_LIBRARY_PATH 环境变量来搜索头文件、库。

cmake \
    -D CMAKE_C_COMPILER=/opt/arm-toolchain/bin/arm-linux-gnueabihf-gcc \
    -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_SYSTEM_NAME=Linux \
    -D CMAKE_INSTALL_PREFIX=/mnt/system_rootfs ../app_src_dir
    -D CMAKE_INCLUDE_PATH=/include/path
    -D CMAKE_LIBRARY_PATH=/lib/path/

关于linux - 交叉编译和CMake?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140154/

相关文章:

c - 如何找到目标文件之间的依赖关系?

linux - Deadline I/O Scheduler front_merges 场景

java - JVM 时间同步选项

linux - Find 无法找到 1M 以下的文件,但可以正常使用 'k' 单位

在运行 configure 时配置不同于默认的编译器

c++ - CMake:编译 OpenCV 时找不到 CUDA 库

gcc - 你如何让 gcc 的 __builtin_frame_address 与 -O2 一起工作?

c - GCC:将结构归零

windows - FindBoost.cmake : Use different Compiler-version (vc90 instead of vc100)

c++ - 使用 libfreenect2 构建