在此工作幾個小時,所以任何洞察力將不勝感激。當編譯一個靜態libssh2庫作爲i386時,它總是返回一個x86_64庫
我想在OS X上爲iPhone模擬器編譯libssh2(我已經爲它編譯成功了)。
我使用下面的環境變量和命令:
export DEVROOT=/Developer/Platforms/iPhoneSimulator.platform/Developer
export SDKROOT=$DEVROOT/SDKs/iPhoneSimulator3.0.sdk
export CC=$DEVROOT/usr/bin/gcc-4.2
export LD=$DEVROOT/usr/bin/ld
export CPP=$DEVROOT/usr/bin/cpp-4.2
export CXX=$DEVROOT/usr/bin/g++-4.2
export AR=$DEVROOT/usr/bin/ar
export AS=$DEVROOT/usr/bin/as
export NM=$DEVROOT/usr/bin/nm
export CXXCPP=$DEVROOT/usr/bin/cpp-4.2
export RANLIB=$DEVROOT/usr/bin/ranlib
export LDFLAGS="-arch i386 -pipe -no-cpp-precomp -isysroot $SDKROOT -L/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os/lib"
export CFLAGS="-arch i386 -pipe -no-cpp-precomp -isysroot $SDKROOT -I/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os/include"
export CXXFLAGS="-arch i386 -pipe -no-cpp-precomp -isysroot $SDKROOT -I/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os/include/"
export CFLAGS=-m32
export CPPFLAGS=-m32
cd /Users/<USERNAME>/Desktop/Dev/src/gnupg-1.4.10
sudo ./configure --host=i386-apple-darwin --prefix=/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os
sudo make
sudo make install
cd /Users/<USERNAME>/Desktop/Dev/src/libgpg-error-1.7
sudo ./configure --host=i386-apple-darwin --prefix=/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os --enable-shared=no
sudo make
sudo make install
cd /Users/<USERNAME>/Desktop/Dev/src/libgcrypt-1.4.5
sudo ./configure --host=i386-apple-darwin --prefix=/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os --enable-shared=no --with-gpg-error-prefix=/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os --disable-asm
sudo make
sudo make install
sudo ./configure --host=i386-apple-darwin --prefix=/Users/<USERNAME>/Desktop/Dev/iphonesimulator-os --with-libgcrypt-prefix=/Users/<USERNAME>/Desktop/Dev/src/libgcrypt-1.4.5
cd /Users/<USERNAME>/Desktop/Dev/src/libssh2-1.2.7
sudo make
sudo make install
所產生的節目和x86_64 dylib試圖用靜態庫某文件在iPhone應用程序時說libssh2.a ,文件是爲不支持的文件格式而構建的,而不是被鏈接的體系結構(i386)。
libgcrypt和其他所需的庫都編譯時沒有問題。
在此先感謝!
非常感謝您取得聯繫。我剛剛試過你的建議,但我沒有運氣。也許我做錯了什麼? 我修改了代碼以準確顯示我在做什麼。 – 2010-09-02 00:16:59
看起來您在運行make之前沒有配置libssh2。 ./configure --prefix =/BUILD_DIRECTORY --with-libgcrypt-prefix =/Users/ /Desktop/Dev/src/libgcrypt-1.4.5 –
Mike
2010-09-02 15:36:03
感謝您的持續支持 - 儘管我仍然沒有任何運氣,我已經更新了上面的代碼。 – 2010-09-02 22:07:34