【问题标题】:How to create a CMakeLists.txt in order to compile a PNaCl program?如何创建 CMakeLists.txt 以编译 PNaCl 程序?
【发布时间】:2015-06-24 11:48:51
【问题描述】:

我有一个 PNaCl 程序,我正在尝试使用 CMake 进行编译。

我包含了以下几行,但根本不起作用:

# disable compiler detection
include(CMakeForceCompiler)
CMAKE_FORCE_C_COMPILER("${CMAKE_C_COMPILER}" Clang)
CMAKE_FORCE_CXX_COMPILER("${CMAKE_CXX_COMPILER}" Clang)

# specify cross-compilers
set(NACL_BIN /usr/local/share/nacl_sdk/pepper_43/toolchain/mac_pnacl/bin)
set(CMAKE_C_COMPILER "${NACL_BIN}/pnacl-clang" CACHE PATH "gcc" FORCE)
set(CMAKE_CXX_COMPILER "${NACL_BIN}/pnacl-clang++" CACHE PATH "g++" FORCE)
set(CMAKE_AR "${NACL_BIN}/pnacl-ar" CACHE PATH "archive" FORCE)
set(CMAKE_LINKER "${NACL_BIN}/pnacl-clang++" CACHE PATH "linker" FORCE)
set(CMAKE_RANLIB "${NACL_BIN}/pnacl-ranlib" CACHE PATH "ranlib" FORCE)

打印错误: pnacl-ld: Unrecognized option: -search_paths_first

【问题讨论】:

  • 打印的错误是什么?
  • pnacl-ld:无法识别的选项:-search_paths_first
  • 但是在你的片段中没有设置 pnacl-ld
  • 这包含在我的 PATH 变量中。 export PATH="/usr/local/share/nacl_sdk/pepper_43/toolchain/mac_pnacl/bin:${PATH}"
  • 我建议您搜索“CMake PCaCI 工具链”文件以供您使用,或者 - 如果它们不能开箱即用 - 作为起点。出现的前两个 - 未经测试:fipsopenzone

标签: c++ cmake google-nativeclient


【解决方案1】:

-search_paths_first 似乎是特定于 OSX 的标志,因此 CMake 似乎不知道您正在进行交叉构建。据我所知,没有必要强制编译器;设置 CMAKE_C_COMPILER 和其他工具可能就足够了。如果仍有问题,您也可以尝试设置 CMAKE_SYSTEM_NAME=nacl

【讨论】:

  • 我强制编译器,它似乎有效,但最后它给了我:pnacl-ld: Unrecognized option: -headerpad_max_install_names
  • 如果我设置 CMAKE_SYSTEM_NAME=nacl 它会给我“系统对于 cmake 是未知的”
【解决方案2】:

根据 Derek 的回答: set(CMAKE_SYSTEM_NAME "Generic" CACHE STRING "Target system.")

否则,CMAKE 将使用特定标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2013-09-07
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多