我正在从Snow Leopard(10.6.8)MAC迁移到Lion MAC(10.7.5)。我没有更改代码或构建脚本中的任何内容,但是一旦我尝试在OSX Lion上使用SCONS构建我的项目,我会收到以下错误:
gcc -arch i386 -o build/osx/objs/installer/Controller.o -c -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -x objective-c++ -Oz -m32 -Wall -fno-common -fvisibility=hidden -fno-strict-aliasing -Wall -fno-common -fvisibility=hidden -DMACOSX_DEPLOYMENT_TARGET=10.5 -g -DOS_OSX=1 -D_OS_NAME=osx -D_PRODUCT_VERSION=1.1.0 -D_PRODUCT_NAME=Aspen -D_GLOBAL_NS_VARNAME=Aspen -D_CONFIG_FILENAME=Aspen.config -D_BOOT_RUNTIME_FLAG= -D_BOOT_HOME_FLAG= -D_DISTRIBUTION_URL=smithmicro.com -D_CRASH_REPORT_URL=smithmicro.com/p/v1/app-crash-report -DOS_32=1 -DDEBUG=1 -I. -Ikroll -Ibuild/osx/sdk/include -Ikroll/libkroll -Ikroll/libkroll/utils installer/osx/Controller.mm
In file included from kroll/libkroll/utils/../base.h:10,
from kroll/libkroll/utils/utils.h:8,
from installer/osx/Controller.h:8,
from installer/osx/Controller.mm:6:
/Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.2.1/string:44:28: error: bits/c++config.h: No such file or directory
我在这里有10.5 sdk:/Developer/SDKs/MacOSX10.5.sdk。当我将Snow Leopard上的10.5 SDK与Lion MAC进行比较时,它们看起来是一样的。
非常感谢任何帮助。提前谢谢。
修改
打开详细信息后,我可以在10.7机器上看到包含路径的信息:
/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/include
/Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.2.1
/Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.2.1/backward
/Developer/SDKs/MacOSX10.5.sdk/usr/include
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks (framework directory)
/Developer/SDKs/MacOSX10.5.sdk/Library/Frameworks (framework directory)
当我看到10.6机器时它已经
/Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.2.1/i686-apple-darwin10
这是缺少的包含,但我不确定它是如何包含在10.6而不是10.7中,它没有在构建脚本中的任何地方明确添加。我相信它基于构建的BaseSDK,它们是相同的。
答案 0 :(得分:2)
所以我最终创建了自己的名为
的别名文件夹/Developer/SDKs/MacOSX10.5.sdk/usr/include/c++/4.2.1/i686-apple-darwin11
在我的10.7机器上,现在一切都编译完毕。我想知道为什么Xcode / SDK安装没有为我创建这个文件夹,就像在10.6上那样。