
我正在为arm和x86_84构建libpq. arm构建适用于真正的iPhone,x86_64适用于iPhone模拟器.然后我创建一个包含两个文件的胖二进制文件,最后得到一个名为libpq的文件.这个文件是我在常规Mac应用程序中使用的文件,它工作正常,并在尝试构建iPhone应用程序时导致问题.
这是我构建libpq时的构建脚本.
#!/bin/bashDEVROOT=/Developer/Platforms/iPhoneOS.platform/DeveloperSDKROOT=$DEVROOT/SDKs/iPhoneOS3.0.sdkrm -rf /Users/bob/mylibsmkdir /Users/bob/mylibs #Store there compiled libsmake clean#Build ARM library./configure --host=arm-apple-darwin --without-readline --disable-ipv6 CC=$DEVROOT/usr/bin/arm-apple-darwin9-gcc-4.0.1 CPPFLAGS="-I$SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.0.1/include/ -I$SDKROOT/usr/include/" CFLAGS="$CPPFLAGS -arch armv6 -pipe -no-cpp-precomp -isysroot $SDKROOT" CPP="$DEVROOT/usr/bin/cpp $CPPFLAGS" LD=$DEVROOT/usr/bin/ldmake -C src/interfaces/libpqcp /Users/bob/Downloads/postgresql-8.4.1/src/interfaces/libpq/libpq.a /Users/bob/mylibs/libpq.arm#Then build i386 librarymake clean && ./configure && make -C src/interfaces/libpqcp src/interfaces/libpq/libpq.a /Users/bob/mylibs/libpq.i386#Then make fat binary$DEVROOT/usr/bin/lipo -arch armv6 /Users/bob/mylibs/libpq.arm -arch x86_64 /Users/bob/mylibs/libpq.i386 -create -output /Users/bob/mylibs/libpq
当我尝试从Xcode中编译iPhone应用程序时,这是构建日志.
Build iPhonePg of project iPhonePg with configuration DeBUGLd build/DeBUG-iphonesimulator/iPhonePg.app/iPhonePg normal i386cd /Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePgsetenv MACOSX_DEPLOYMENT_TARGET 10.5setenv PATH "/Developer/Platforms/iPhonesimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"/Developer/Platforms/iPhonesimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhonesimulator.platform/Developer/SDKs/iPhonesimulator3.0.sdk -L/Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg/build/DeBUG-iphonesimulator -L../../../../mylibs -L/Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg -L/Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg/../../../../mylibs -F/Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg/build/DeBUG-iphonesimulator -fileList /Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg/build/iPhonePg.build/DeBUG-iphonesimulator/iPhonePg.build/Objects-normal/i386/iPhonePg.linkfileList -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics /Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg/libpq -o /Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg/build/DeBUG-iphonesimulator/iPhonePg.app/iPhonePgld: warning: in /Users/bob/documents/Programming/PragProgrammerIphonesDK/iPhonePg/libpq,missing required architecture i386 in fileUndefined symbols: "_PQclear",referenced from: -[iPhonePgAppDelegate applicationDIDFinishLaunching:] in iPhonePgAppDelegate.o "_PQerrorMessage",referenced from: -[iPhonePgAppDelegate applicationDIDFinishLaunching:] in iPhonePgAppDelegate.o "_PQconnectdb",referenced from: -[iPhonePgAppDelegate applicationDIDFinishLaunching:] in iPhonePgAppDelegate.o "_PQfinish",referenced from: -[iPhonePgAppDelegate applicationDIDFinishLaunching:] in iPhonePgAppDelegate.o "_PQstatus",referenced from: -[iPhonePgAppDelegate applicationDIDFinishLaunching:] in iPhonePgAppDelegate.o "_PQexec",referenced from: -[iPhonePgAppDelegate applicationDIDFinishLaunching:] in iPhonePgAppDelegate.old: symbol(s) not foundcollect2: ld returned 1 exit status
遇到这种情况的其他人可以提供帮助吗?
谢谢
StartShip3000
此外,模拟器环境仅为32位,x86_64库不适用于模拟器二进制文件.
总结以上是内存溢出为你收集整理的xcode – 使用Libpq将iPhone App连接到PostgreSQL全部内容,希望文章能够帮你解决xcode – 使用Libpq将iPhone App连接到PostgreSQL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)