これらの標準構成フラグのドキュメントを見つけるのに何時間も費やす私のような人のために(./configure make make installを実行するため)
./configure --build is used for specifing the architecture you want to complie for
./configure --host is used to specify the ark of the machine doing the compileing (running xcode)
./configure --target seems to be an alias
それでは、問題を解決します。
1)FreeTDSの最新バージョンを入手する http://www.freetds.org/
2)次のステップは、FreeTDS./configureを正しく実行する独自のbashシェルファイルを作成することです。シミュレータはi386/i686アーキテクチャであり、Appleデバイス(iPhone、iPodなど)はARMアーキテクチャであるため、2つ必要になります。また、iPhone開発ディレクトリ内のコンパイラファイル/バージョンは異なる場合があります。論理的に意味があり、同様の命名規則があるものを見つけてください。macホストアーキテクチャには、コマンドuname-pが付属しています。
シミュレーター(i386)build_for_simulator_i386.shで使用するためのビルドの例を次に示します。
#!/bin/sh
#unset some shell variables
unset CC
unset CFLAGS
unset CPP
export buildPath=`pwd`
# make i386 (Simulator) target
export CC=/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/i686-apple-darwin11-llvm-gcc-4.2
export CFLAGS="-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk"
# if you want Windows Authentication (NTLM) support you must use at least tds version 7
# the default is 5
./configure --build=i386 --host=i386 --target=i386 --with-tdsver=7.1
ARMコンパイル(build_for_device_armv7.sh)の構成例:
#!/bin/sh
# unset some shell variables
unset CC
unset CFLAGS
unset CPP
export buildPath=`pwd`
# make arm target
export CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2
export CFLAGS="-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk"
export CPP=/usr/bin/cpp
./configure --build=arm-apple-darwin10 --host=x86_64-apple-darwin11.3.0 --target=armv7 --with-tdsver=7.1
3)freetdsダウンロードを解凍した結果のルートfreetdsディレクトリへの次のCD、私のものはfreetds_0.91でした
4)スクリプトの1つを実行します。一度にコンパイルできるのは1つのアーキテクチャのみです
sh build_for_(desiered build)
this runs ./configure for you with the correct options
(tds version 7 required for NTLM authentication)
5)構成プロセスが完了したら、構成ファイルをハックする必要があります。freetds_0.91 / include / config.hを開き、172行目で#defineHAVE_ICONV1を#defineHAVE_ICONV0に変更します。
6)以前に./configure、make、make installを実行したことがある場合は、これらのコマンドを実行します。特に、これを行わずにmakeを実行するとエラーが発生するため、スイッチングアーキテクチャが
sudo make clean
sudo make uninstall
7)makeを使用してコンパイルを実行します
make all
sudo make install
makeプロシージャは意図的にエラーを処理しますが、シェルプロンプトの6行または7行以内にエラーが表示された場合は、戻ったら問題が発生するため、続行する前に修正する必要があります。この時点で多くのことがうまくいかない可能性があるとだけ言っておきましょう。
8) freetdsが作成するすべての小さな.oファイルの集大成であるバイナリコンパイル済みファイルをインストールした後は、/ usr / local / lib/libsybdb.aです 。ライブラリだけの.oファイルをプルしたくないと信じてください。あなたが欲しい。/usr/local/lib/libsybdb.aをプロジェクトの適切なフォルダーにコピーします。私が行ったのは、「compiled_freetds-0.91_simulator_i386」と「compiled_freetds-0.91_device_armv7」という名前の、アーキテクチャごとに1つずつ、2つの別々のフォルダを作成することでした。
9)生活を楽にし、使用するコンパイル済みファイルをxcodeに認識させたいので、この手順のサブセットに従って動的リンクを実行します。
a) Select you project settings on the left had side of xcode
(the blue think with the name of your project on it)
b) Select the Target (usual the same name as your app)
c) Navigate to **build settings**, scroll down to **linking > other linker flags**
d) On the left side of Other Linker Flags a mouse over will reveal an expander,
expanding will reveal Debug and Release rows.
e) Add the appriate architectures by selecting the plus on the right side of
either Debug or Release. When the new row appears select the architecture,
double click the first editable field from the right to open an entry box
that you can then drag the appropriate complied file into it to be dynamically
linked. You must do this for both files and when done correctly the file
under ARMv7 will be used when building for the device and the one for Any iOS
Simulator SDK will be used when running on the simulator.
**Note:** You may also need to add the -all_load flag to resolve linking issues.
10)デバイスでコードを実行するときにlibsybdb.5.dylibに関連するダイナミックリンクエラーの問題を回避するように見える最後のステップは、アンインストールを行うことです。また、デバイスで実行すると、CPU_SUBTYPE_ARM_ALLが非推奨になることについて、36刻みで多くの警告が表示されます。これは正常ですが、煩わしいことです。
sudo make uninstall
これがお役に立てば幸いです。