c - -isysroot 或 SDKROOT 问题

标签 c xcode macos history readline

我是 libhistory 的新手,所以我正在查看使用 readline 库找到的示例。使用命令提示符编译它:

gcc -o ./a.out /usr/local/share/readline/histexamp.c -lreadline -L/usr/local/lib/
它编译和维护历史。

然后用相同的文件创建了一个 xcode 项目,并链接到它编译良好的 readline 库。但是当我运行时,它不会在枚举历史条目时维护历史和崩溃。经过一些试验后,我发现 -isysroot 参数是导致此问题的原因:

-isysroot /Developer/SDKs/MacOSX10.6.sdk
gcc 手册页说 isysroot 类似于 --sysroot 选项,但仅适用于头文件。

为什么同一个程序使用此选项时表现不同?

最佳答案

-isysroot 用于定义您构建的 SDK。如果您使用 10.6 SDK 构建,然后尝试在 OS X 10.5 上运行,那么您可能会失败。您应该使用与您的程序所需的最低操作系统相对应的任何 SDK 进行构建(以获得最大的向后兼容性)。

关于c - -isysroot 或 SDKROOT 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2279499/

相关文章:

ios - 将 Xcode 项目注册到 Bluemix

macos - 当图像插入一行时,NSTextField 在 NSTableView 中变得模糊

c++ - 带有 ARM M1 的 Mac 上的 cmake 正在运行带有 x86_64 架构而不是 arm64 的链接器

ios - 无法构建调试方案 - Apple Mach-O 链接器错误。链接器命令失败,退出代码为 1

objective-c - objective-c - 你如何使用 Mac OSX lion 中的恢复功能

c - 来自 Linux 内核代码的宏

c - C 语言中 strdup() 的实现

c - atoi() 实际上是如何工作的

c - gcc 的 -Wsequence-point 警告标志是否损坏?

iphone - 设计时特定于 iphone 4 的 Storyboard