私はいくつかのGPLコードを含む小さなコマンドラインツールを書きました。すべてがぎこちなく実行されます。os10.6を使用します。
使用される外部コードには、autoconfを呼び出して作成されたconfig.hヘッダーファイルがあります。ツールをさまざまなOSバージョンに展開したいと思います。したがって、config.hは次のようになります。
// config.h
#if MAC_OS_X_VERSION_MAX_ALLOWED == MAC_OS_X_VERSION_10_4
// autoconf created config.h content for 10.4 comes here
#elif MAC_OS_X_VERSION_MAX_ALLOWED == MAC_OS_X_VERSION_10_5
// autoconf created config.h content for 10.5 comes here
#elif MAC_OS_X_VERSION_MAX_ALLOWED == MAC_OS_X_VERSION_10_6
// autoconf created config.h content for 10.6 comes here
#else
#error "muahahaha"
#endif
config.hの生成中に/Developer/SDKs/MacOSX10.XXXX.sdk/usr/を使用するようにautoconfに指示する方法は何ですか?
それをテストするために私は実行しました
#!/bin/bash
# for 10.6
export CC="/usr/bin/gcc-4.2"
export CXX="/usr/bin/g++-4.2"
export MACOSX_DEPLOYMENT_TARGET="10.6"
export OSX_SDK="/Developer/SDKs/MacOSX10.6.sdk"
export OSX_CFLAGS="-isysroot $OSX_SDK -arch x86_64 -arch i386"
export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch x86_64 -arch i386"
export CFLAGS=$OSX_CFLAGS
export CXXFLAGS=$OSX_CFLAGS
export LDFLAGS=$OSX_LDFLAGS
OS10.6で./configureを呼び出す前。configureスクリプトがlibintl.hを検索することは知っています。これは、「すぐに使用できる10.6 / SDK」には含まれていませんが、ローカルマシンの/ usr/localにあります。上記の方法で作成されたconfig.hヘッダーファイルには次のようなものがあります。 libintl.hがシステムにあるという情報-したがって、SDKにのみautoconfを「リンク」することは失敗しました。
「水晶玉がない」からなのか?:)。それとも、autoconfを実行する前の「setup」/flag-exportが正しくないのでしょうか。もしそうなら、envvariablesを設定する正しい方法は何でしょうか?
よろしくお願いします。
編集。のように見えます
#!/bin/bash
#set to gcc-4.0 for 10.4
export GCC_VERSION="gcc-4.2"
#set to g++-4.0 for 10.4
export GPLUSPLUS_VERSION="g++-4.2"
# MacOSX10.4u. MacOSX10.5, MacOSX10.6
export OSX_SDK="/Developer/SDKs/MacOSX10.6.sdk"
# 10.4, 10.6, 10.6
export MACOSX_DEPLOYMENT_TARGET="10.6"
export CC="$GCC_VERSION -isysroot $OSX_SDK -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
export CCX="$GPLUSPLUS_VERSION -isysroot $OSX_SDK -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
export CFLAGS="$CFLAGS -isysroot $OSX_SDK -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
export CXXFLAGS="$CXXFLAGS -isysroot $OSX_SDK -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
export LDFLAGS="$LDFLAGS -isysroot $OSX_SDK -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
トリックをしました:)とにかくありがとう。