如何解决 OSX cctools 中的构建错误
How to resolve build errors in OSX cctools?
我正在尝试从OSX下的OSX的CCtools集合中构建工具。我这样做是为了研究目的。
当我为整个项目运行生成文件时,出现链接器错误:
=========== /Applications/Xcode.app/Contents/Developer/usr/bin/make all for misc =============
cc -Os -DLTO_SUPPORT -DTRIE_SUPPORT -g -Wall -I. -I./../include -I. -I/usr/local/include -c -o ./lipo.o lipo.c
cc -nostdlib -r
-o ./lipo.private.o
./lipo.o -L./../libstuff -lstuff
cc -o ./lipo.NEW
./lipo.private.o
Undefined symbols for architecture x86_64:
"_is_llvm_bitcode_from_memory", referenced from:
_main in lipo.private.o
_check_archive in lipo.private.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [lipo.NEW] Error 1
make: *** [all] Error 1
运行单个工具的make文件会给我带来类似的链接器错误。我尝试过的所有 CCtools 版本(包括最新源代码 877.5 和我安装的工具所在的版本 862)都会发生这种情况。
- 我缺少什么来编译工具?
- 如何哄骗链接器让我知道我缺少哪个库?
- 我在哪里可以找到编译工具的说明?
附加信息:
- 我安装了XCode和开发人员工具,并且我一直在构建项目。
- 我也从brew安装了gcc。
我一定错过了什么愚蠢的东西。
我无法为您提供版本 877.5 的确切解决方案,但总体问题是编译需要您计算机上的一些 LLVM 代码。它可能像缺少 LLVM 标头的包含目录一样简单,或者可能需要链接某些 LLVM 库。在您的情况下,它们似乎以某种方式与LLVM位码有关。
就我而言,我刚刚构建了最新版本cctools-895的子集。它抱怨缺少与LLVM的llvm-c/lto.h
标头相关的符号。当我将以下内容添加到有问题的文件的编译规则中时,错误消失了:
-I/opt/llvm-7.0.0/include/
LLVM 7的版本是一个随机猜测,因为我的机器上有它。您可能希望定制包含路径,以指向构建 cctools 的正确版本的 LLVM。
在计算机上获取 LLVM 的最简单方法是从 LLVM 下载页面获取二进制版本。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 如何解决 Ninja c++ 构建和执行问题
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 用CMake构建C++协议
- 如何解决 OSX cctools 中的构建错误