【问题标题】:How to specify the compiler for CMAKE external project?如何为 CMAKE 外部项目指定编译器?
【发布时间】:2017-01-29 07:39:19
【问题描述】:

我正在使用 ExternalProject_Add 包含一个外部项目。我想要的是能够做到

cmake -DCMAKE_CXX_COMPILER=<some compiler> <assume correct path>

用于顶级项目,以便我选择的编译器传播到外部包含的项目。我希望可以在 ExternalProject_Add 命令中添加一些内容:

ExternalProject_Add (

  some_external_project

  PREFIX ...            # Assume this works.
  GIT_REPOSITORY ...    # Assume this works too.

  # What should I write here to tell it to use the ${CMAKE_CXX_COMPILER}
  # of the top-level project ?
)

【问题讨论】:

标签: c++ cmake


【解决方案1】:

以下在顶级项目中对我有用:

ExternalProject_Add (

  some_external_project

  PREFIX ...          # Assume this works.
  GIT_REPOSITORY ...  # Assume this works too.

  # This did the trick for me.
  CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
)

【讨论】:

  • 为什么会被否决?似乎是一种有效的方法。
  • 我喜欢这种方法的简单性。另请注意,这种方法可以做的不仅仅是继承编译器选项;事实上,它可以携带任何标志。
  • 这对我来说效果很好。在我的 CMakeList.txt 中,我使用 ExternalProject_Add,它令人惊讶地使用了默认编译器(在我的例子中是 clang,因为我在安装了 Xcode 的 Mac 上开发)而不是在运行 cmake 时指定的编译器(在我的例子中是 GNU gcc)。使用 2 个不同的编译器编译源代码会创建未解析的符号。这 2 行强制 cmake 使用指定的编译器而不是默认的编译器,它就像一个魅力。
猜你喜欢
  • 2012-10-13
  • 2023-03-28
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多