C++ iOS静态库生成,Scons链接器搜索错误的表格

C++ iOS静态库生成,Scons链接器搜索错误的表格,c++,ios,scons,jsoncpp,C++,Ios,Scons,Jsoncpp,我正在尝试将jsoncpp(C++代码)构建为iPhone模拟器和设备的静态库。模拟器编译成功,但设备编译失败。 我认为原因是搜索包含在MacOSX10.11.sdk而不是iPhoneOS9.1.sdk中的链接器。 我不清楚为什么链接器没有在iPhoneOS9.1.sdk中搜索,为什么在模拟器编译中不存在这个问题 我正在将SCON用于下一个配置: env = Environment(CXX = 'clang++', TARGET_OS = 'ios', toolpath = ['scons-to

我正在尝试将jsoncpp(C++代码)构建为iPhone模拟器和设备的静态库。模拟器编译成功,但设备编译失败。 我认为原因是搜索包含在MacOSX10.11.sdk而不是iPhoneOS9.1.sdk中的链接器。 我不清楚为什么链接器没有在iPhoneOS9.1.sdk中搜索,为什么在模拟器编译中不存在这个问题

我正在将SCON用于下一个配置:

env = Environment(CXX = 'clang++', TARGET_OS = 'ios', toolpath = ['scons-tools'], tools=[] )
if platform == "ios_phone":
    env['CXXFLAGS'] = '-std=c++11 -stdlib=libc++  -arch armv7 --sysroot %s' %(IOSROOT)
    env['LINKFLAGS'] = '-stdlib=libc++ -arch armv7 -isysroot %s' %(IOSROOT)
    env['TARGET_ARCH'] = 'armv7'
    print env.Dump()

#IOS SIMULATOR COMPILATION
if platform == "ios_simulator":
    env['CXXFLAGS'] = '-std=c++11 -stdlib=libc++  -arch i386 -arch x86_64 --sysroot %s' %(IOS_SIMULATOR_ROOT)
    env['LINKFLAGS'] = '-stdlib=libc++ -arch i386 -arch x86_64  -isysroot %s' %(IOS_SIMULATOR_ROOT)
    env['TARGET_ARCH'] = 'i386, x86_64'
    print env.Dump()
并获取下一个错误:

斯科恩:建立目标。。。叮当声++-o buildscons/ios\u phone/src/lib\u json/json\u reader.o-c-std=c++11 -stdlib=libc++-arch-armv7--sysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.1.sdk -包括src/lib_json/json_reader.cpp中包含的文件中的src/lib_json/json_reader.cpp:7:In包含的文件中 include/json/reader.h:11:在包含的文件中 include/json/value.h:12:在包含的文件中 /Applications/Xcode.app/Contents/Developer/toolschains/xcodefault.xctoolschain/usr/bin/。/include/c++/v1/string:434: 在文件中包括从 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/。/include/c++/v1/u配置:23: 在文件中包括从 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/unistd.h:71: 在文件中包括从 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/\u types.h:27: 在文件中包括从 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sys/_types.h:32: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sys/cdefs.h:707:2: 错误:不支持的体系结构

错误:不支持的体系结构 我在环境参数中没有找到MacOSX


您知道如何强制链接器使用正确的平台吗?或者根本原因是什么?

问题是我必须手动更新的Xcode命令行收费。更新的原因是我做的新的Xcode(7)更新。更新后编译工作正常。

问题是Xcode命令行收费,我必须手动更新。更新的原因是我做的新的Xcode(7)更新。更新后,编译工作正常。

您是否确实对关键字“ios错误:不支持的体系结构”进行了STW?我不是Mac专家,但在我看来,这些链接中的一些可能会对你有所帮助。你读过自述中的这一部分吗。。“在项目中使用JsonCpp在项目中集成JsonCpp的推荐方法是包含合并的源代码(一个.cpp文件和两个.h文件)并像编译其他源文件一样编译和生成。这确保了编译标志和ABI兼容性的一致性,以及在生成共享库或静态库时出现的问题。有关说明,请参阅下一节。“您是否确实STW了关键字“ios错误:不支持的体系结构”?我不是Mac专家,但在我看来,这些链接中的一些可能会对你有所帮助。你读过自述中的这一部分吗。。“在项目中使用JsonCpp在项目中集成JsonCpp的推荐方法是包含合并的源代码(一个.cpp文件和两个.h文件),并像编译其他源文件一样编译和生成。这可确保编译标志和ABI兼容性的一致性,以及生成共享或静态库时出现的问题。有关说明,请参阅下一节。”