因此,我尝试为标准 IDE 移植一些 Boost.Extension 示例 - 使 tham 从 BJAM 中解放出来,并能够以跨平台的标准方式使用它们。
此处描述了我现在遇到的问题的示例。这是我的代码端口(我们尝试在主代码文件中加载的库,主应用程序,一般所有端口的想法都在这里描述,以及一些当前的 linux 进展在这里(大多数示例确实根据需要工作!))。当我在 linux 下编译此示例时,它会编译,它会找到库,但在执行期间因 分段错误错误而失败。当我在 Windows 上编译它时,会发生同样的事情。
我已尽力不更改原始教程代码。
那么代码有什么问题,为什么如果失败,唯一重要的是 - 如何修复它?
那么如何使用 premake 构建这些东西:
- 你从这里得到svn(只需要这个文件夹)
- 您可以为您的平台获取 premake 或从源代码构建它并将其放入您从 svn 下载的文件夹中
- 您应该已经编译并安装了官方的 Boost(请阅读我们在目录中提供的 ReadMe.txt 文件),所以需要什么:
- Boost C++ 库 (我们测试了 1.4.16 版)
- Boost-Extension(我们使用最新版本,我们将其作为 boost 'boost/extension/
**
' 的一部分进行处理,我们必须制作一些 chandes(实际上只有一个)来提升扩展,所以我们在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/
文件夹中,我们可以简单地调用Boost.Extension.Tutorial/ premake4-build-windows.bat
windows 来获取 Visual Studio 的 sln 或Boost.Extension.Tutorial/ premake-build.sh
获取 makefile。 - 您可以在生成的项目文件夹中找到生成的解决方案/makefile。
- 祝你好运!=)
更新:
Windows 和 Linux 的项目文件现在在 svn 中,因此您可以使用 premake 进行项目创建 - 只有 Boost、我们的 svn 和反射头文件 lib。
更新 2:
所以通常我的电脑在 Windows 和 Linux 上都出现问题。我的 Linux 的详细信息(这是一个 openSUSE 11.3 VMWare 映像,其中包括 Mono 2.10.2)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)
我的 Windows 是标准的 Windows 7,带有 Visual Studio Team System 2008 Team Suite。
我的 boost 是从这里手动编译和安装的 1.46.1下载。