我正在尝试为希望将其包含在 Photoshop 插件中的客户编译我们的 lib 的 Mac 版本,但他无法将我们的 lib 链接到他的应用程序中。更详细的信息:他的插件是针对 CS4 Photoshop SDK 构建的,这意味着 Mac OS 基础 SDK 应该是 10.4。我的库是静态库,使用英特尔编译器 11.1 编译,基础 SDK 也设置为 10.4。
我针对我编写的一个小型测试应用程序测试了我的库,它可以编译并且工作正常(在 10.5 上)。为了复制我客户的环境,该应用程序使用 gcc 编译,并使用 10.4 基础 SDK。虽然对我来说很好,但我的客户无法设法与我的库链接。问题如下:未定义符号:“_fputs$UNIX2003”,引用自:libMyLib.a(libm_error.o) 中的 _write_message
当我用 gcc 编译我的库时,所有其他项目设置都相同,很好,他可以生成一个可执行文件。一旦我用 ICL 编译,它就会崩溃。会不会是 ICL 11.1 与 10.4 不兼容?在 Fortran 编译器论坛上,我找到了以下答案:“从提供的输出来看,Xcode 默认为 Mac OS X 10.4,11.1 编译器不支持。” ( http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/68647/ ) 这是否意味着 ICL 11.1 不能在 10.4 上运行,或者它生成的代码在 10.4 上不起作用?
在下一页(http://software.intel.com/en-us/articles/performance-tools-for-software-developers-compatibility-of-intel-compiler-for-mac-os-x-and-xcode /),它还说 ICL 11.1 与 10.4 不兼容(同样的问题:兼容性是什么意思?)。但是,它说 ICL 10.1 是,所以我尝试了。但是现在,出于同样的原因,即使是我自己的测试应用程序也没有链接(未定义的函数 $UNIX2003)。
有谁知道问题是什么,以及如何解决?或者有办法解决它?
提前致谢,
一个
PS:如果有人知道这意味着什么,则加分: ld:在可滑动图像中不允许在来自 libMyLib.a(Cholesky.o) 的 _Cholesky 中使用的绝对寻址(也许是 -mdynamic-no-pic)。使用“-read_only_relocs suppress”启用文本重定位