そこで、標準IDE用のBoost.Extensionサンプルを移植しようとしています。これは、BJAMからタムを解放し、プラットフォーム間で標準的な方法でそれらを操作できるようにするためです。
私が今問題を抱えているサンプルはここに記述されています。これが私のコードポートです(メインコードファイル、メインアプリケーション、一般的なすべてのポートのアイデアをここで説明し、現在のLinuxの進歩をここで説明します(ほとんどのサンプルは実際に必要に応じて機能します!))。このサンプルをLinuxでコンパイルすると、コンパイルされますが、ライブラリは見つかりますが、実行中に セグメンテーション違反エラーで失敗します。Windowsでコンパイルすると、同じことが起こります。
オリジナルのチュートリアルコードをできるだけ変更しないように最善を尽くしました。
では、コードの何が問題になっているのか、なぜ失敗したのか、そして重要なのはそれを修正する方法だけですか?
それで、premakeでこのようなものを構築する方法:
- ここからsvnを取得します(このフォルダーのみが必要です)
- プラットフォームのプリメイクを取得するか、ソースからビルドして、svnからダウンロードしたフォルダーに配置します
- 公式のBoostをコンパイルしてインストールする必要があります(ディレクトリにあるReadMe.txtファイルをお読みください)。必要なものは次のとおりです。
- Boost C ++ライブラリ (バージョン1.4.16でテスト済み)
- Boost-Extension(最新のリビジョンを使用します。boost'boost / extension /
**
'の一部としてアドレス指定します。拡張機能をブーストするためにいくつかのチャンド(実際には1つのみ)を作成する必要がBoost.Extension.Tutorial/libs/boost/extension/
あったため、フォルダー内に提供し、svnをダウンロードしたときに取得しました。 、ヘッダーのみです) - Boost-Reflection(このチュートリアルのために使用し、最新のリビジョンを使用し、boost'boost /reflection /
**
'の一部としてアドレス指定します。*簡単にするために、 *に入れることをお勧めしBoost.Extension.Tutorial/libs/boost/reflection
ます)
- これで、公式のBoostがシステムにあり、ヘッダーのみのBoost-reflectionとBoost-extensionが
Boost.Extension.Tutorial/libs/boost
フォルダーにあり、premake4実行可能ファイルがBoost.Extension.Tutorial/
フォルダー内にある場合、Windowsを呼び出しBoost.Extension.Tutorial/ premake4-build-windows.bat
てVisualStudioのslnを取得したりBoost.Extension.Tutorial/ premake-build.sh
makefileを取得したりできます。 - 生成されたソリューション/メイクファイルは、生成されたプロジェクトフォルダー内にあります。
- 頑張ってください!=)
アップデート:
WindowsとLinuxのプロジェクトファイルがsvnに含まれるようになったため、premakeを使用してプロジェクトを作成できます。Boost、svn、およびリフレクションヘッダーのみをlibに設定してください。
アップデート2:
一般的に私のコンピュータはWindowsとLinuxの両方で問題を示しています。Linuxの詳細( Mono2.10.2を含むopenSUSE11.3 VMWareイメージ)GCC(gcc -v
):
rupert@linux:~> gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper
Target: i586-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.5 --enable-linux-futex --without-system-libunwind --enable-gold --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic --build=i586-suse-linux
Thread model: posix
gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux)
私のウィンドウは、Visual Studio Team System 2008TeamSuiteを搭載した標準のWindows7です。
私のブーストは、手動でコンパイルおよびインストールされたここからの1.46.1ダウンロードです。