我正在运行Xcode 4.6.2的Mac OS X 10.8.3主机上使用MacPorts GCC 4.7.2 + universal构建二进制文件。
我使用编译标志
来定位Mac OS X 10.5-10.8主机的构建-mmacosx-version-min=10.5
生成的二进制文件my_first_binary
有两个指向libgcc_s.1.dylib
的链接:
$ otool -L ../bin/my_first_binary
../bin/my_first_binary:
/opt/local/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.17.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
/opt/local/lib/gcc47/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
二进制文件是用C ++编写的,使用MacPorts g++
4.7.2 +通用编译器编译,并且在使用某些C I / O例程打开文件时遇到一些麻烦。
我通过更改编译标志来制作第二个以10.6-10.8主机为目标的二进制文件:
-mmacosx-version-min=10.6
这第二个二进制文件只有一个指向libgcc_s.1.dylib
库的链接:
$ otool -L ../bin/my_second_binary
../bin/my_second_binary:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
/opt/local/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.17.0)
/opt/local/lib/gcc47/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
第二个二进制文件正常工作,可以毫无问题地打开文件。
我的问题是:
如果将最低版本版本设置为10.5,会导致/usr/lib
- [{1}}的变体被链接?
这会导致我的两个二进制文件中基于C的代码发生命名空间冲突或其他问题吗?
如果这是一个问题,我该怎么做才能停止或解决此问题,同时继续构建至少10.5目标?