Mac OS X 库使用与开发指南
1. 特定库的版本差异及处理
在Mac OS X系统中,不同版本对一些库的使用有所不同:
-curses库:在Mac OS X 10.1及更早版本中,curses屏幕库是libSystem.dylib的一部分。而在Mac OS X 10.2及更高版本中,使用ncurses库(/usr/lib/libncurses.5.4.dylib)代替curses。若遇到在libSystem.dylib中寻找curses的源代码发布,会导致链接错误,可通过在链接器参数中添加 -lcurses 来解决。因为在10.2 - 10.5版本中,/usr/lib/libcurses.dylib是指向libncurses的符号链接,在更早版本中则指向libSystem。
-libutil库:在Mac OS X 10.4及更早版本中,没有libutil的符号链接,其功能由libSystem提供。在Mac OS 10.5中,libutil是指向libutil1.0的符号链接,且已从libSystem中移出。若因 -lutil 导致链接失败,可尝试去掉该选项看是否解决问题。
-libstdc++库:在苹果GCC 4.0之前的实现中,libstdc++仅作为静态库(libstdc++.a)包含。而在Mac OS X 10.3.9及更高版本中,仅包含该库的动态版本(libstdc++.dyld)。因此,使用GCC 4.0.x编译的C++应用程序无法在早于10.3.9的Mac OS X版本上运行。