我正在尝试构建 curl 的 32 位库对于 OSX,在 64 位 OSX 安装 (Yosemite 10.10.5) 上,根据 the documentation .我试过使用许多不同的参数调用 ./configure,但这是我希望涵盖所有基础的参数:
CFLAGS='-m32 -arch i386' LDFLAGS='-arch i386' ./configure --host=i386-apple
我也尝试过不同的主机,例如 x86-apple、x86-apple-darwin、i386-apple-darwin 等。据我所知,它们都可以正常构建,但是当我尝试构建链接到生成的 dylib 的其他 32 位项目,我收到以下错误消息
warning: ignoring file [...]/libcurl.a, file was built for archive which is not the architecture being linked (i386)
然后是几个变体
Undefined symbols for architecture i386:
"_curl_easy_cleanup" [...]
调用
lipo -info libcurl.a
产生以下结果
fatal error: [...]/lipo: archive with no architecture specification: libcurl.a
我做错了什么?我的 ./configure 调用是否格式错误,我是否缺少标志或参数?根据installation instructions ,人们已经成功编译到 i386 Mac OS X,所以我假设我遗漏了什么
最佳答案
也许已经晚了,但因为我刚碰到同一堵墙......你可以尝试在配置选项中指定:
./configure --build=i386-darwin --host=x86_64-darwin
据我所知,host
表示您正在构建的机器的体系结构,而 build
是目标体系结构。
关于c++ - 在 64 位 OSX 上构建 32 位 libcurl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38634446/