iOS静态库使用Scons链接器在错误的平台上搜索构建
iOS static library build with Scons linker search on wrong paltform
我正在尝试将jsoncpp(C++代码)构建为iPhone模拟器的静态库&装置模拟器编译成功,但设备编译失败。我认为原因是搜索的链接器包含在MacOSX10.11.sdk中,而不是iPhoneOS9.1.sdk中。我不清楚为什么链接器没有在iPhoneOS9.1.sdk中搜索,以及为什么在模拟器编译中不存在这个问题。
我正在使用带有下一个配置的烤饼:
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()
然后得到下一个错误:
烤饼:建筑目标。。。叮当++-obuildscons/ios_phone/src/lib_json/json_reader.o-c-std=c++11-stdlib=libc++-arch armv7--sysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Develer/SDKs/iPhoneOS9.1.sdk-I包含src/lib_json/json_reader.cpp包含在src/lib_6json/json-reader.cpp:7:包含在文件中include/json/rereader.h:11:在包含的文件中include/json/value.h:12:在包含的文件中/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchains/usr/bin/../include/c++/v1/string:434:在包含的文件中/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchains/usr/bin/../include/c++/v1/__config: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/Develer/SDKs/MacOSX10.11.sdk/usr/include/_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:错误:不支持的体系结构
错误不支持的体系结构
我没有在env参数中找到MacOSX。
你知道如何强制链接器使用正确的平台吗?或者根本原因是什么?
问题是Xcode命令行通行费,我必须手动更新。更新的原因是我进行了新的Xcode(7)更新。更新后,编译工作非常完美。
- C2064 从 MSVC v100 更新到 v140 平台工具集时出现编译错误
- 通用Windows平台-CustomHidDevice(错误:值被阻止)
- 错误LNK2019:Qt平台中未解析的外部符号C++
- #错误您必须定义平台宏
- 在64位平台上使用交叉编译器生成错误32位.exe
- windows上的boost.asio错误代码依赖于平台
- 错误 MSB8007:项目 XXX 的平台无效。平台='x64'
- iOS静态库使用Scons链接器在错误的平台上搜索构建
- VS2010 x64:64位平台VS2010中包含错误数据的对象数组
- android平台GMP库配置错误.处理步骤
- 将平台工具集更改为v140_xp时出现"Windows.h:没有此类文件或目录"错误
- OS X上的std::locale段错误,不能在任何其他平台上重现
- 64位平台上的编译错误C2664
- 使用VideoWriter_GPU时如何解决OpenCV错误"功能未实现(当前构建或平台禁用了称为功能)?
- 带有 NDK 平台的 C++ 错误帮助 '_IOR' 未在此范围内声明
- SFML平台错误:缺少类型说明符-假定为int
- Tinyxml -指向x64平台时链接错误
- "refclock.h"头文件中的生成错误,这是 Windows 平台 SDK 的一部分
- 与Qt静态链接的应用程序出现错误:无法加载平台插件"windows"
- 在android平台上使用dlclose(..)时出现分段错误