macos - 避免 cmake 在 MacOS 中添加标志 -search_paths_first 和 -headerpad_max_install_names

标签 macos cmake arm

我正在使用 cmake 在 MacOS 中为 ARM 构建一个 *.elf 文件。 CMake 正在自动添加标志 -Wl,-search_paths_first -Wl,-headerpad_max_install_name,这会导致生成无效的 *.elf 文件。我得到错误 warning: cannot find entry symbol arch_paths_first;默认为 00000000080001e0.

我尝试在没有该选项的情况下执行 arm gcc 命令,它运行良好。

如何阻止 cmake 添加这些标志?

最佳答案

我已经找到了一种方法来做到这一点。

需要添加如下指令:

set(HAVE_FLAG_SEARCH_PATHS_FIRST 0)

我很确定必须在 project 指令之前添加它。

为了删除标志 -headerpad_max_install_names,我在 project 指令之后写了以下内容:

set(CMAKE_C_LINK_FLAGS "")

我想如果我使用 g++ 我应该需要添加

set(CMAKE_CXX_LINK_FLAGS "")

关于macos - 避免 cmake 在 MacOS 中添加标志 -search_paths_first 和 -headerpad_max_install_names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54482519/

相关文章:

android - 在 .so 中混合使用 c/c++ 和程序集时避免文本重定位

python - 在 XAMPP ubuntu 和 mac os x 中安装 a2enmod

python - pip 在 Docker 中被杀死

c++ - 对于 Cmake,您可以使用 `add_compiler_flags()` 命令修改发布/调试编译器标志吗?

c++ - 如何使用Visual C++编译器运行Cmake for boost 1.39.0构建库

azure - 如何在 ARM Bicep 模板中添加条件?

arm - ARM Yield 指令如何通知其他线程它们可以启动,它与 WFE 相比如何?

linux - bash - 获取运行脚本的目录

macos - 安装最新版本的 OS X(Yosemite 或 El Capitan)后缺少 `pg_tblspc`

bash - 将时间的输出及其计时的命令写为一行