Boost-Extension-Reflection不使用bjam编译正式样本时如何解决分段错误?

| 因此,我尝试为标准的IDE移植一些Boost.Extension示例-使Tham不受BJAM的影响,并能够以跨平台的标准方式与它们一起使用。 现在介绍我所困扰的样本。这是我的代码端口(我们尝试在主代码文件,主应用程序中加载的库,此处描述了所有端口的一般概念,此处还介绍了一些当前的linux进展(大多数示例确实可以根据需要运行!))。当我在linux下编译此示例时,它会编译,它会找到库,但是在执行过程中会出现分段错误错误而失败。当我在Windows上编译它时,也会发生同样的事情。 我已尽力不更改原始教程代码。 那么代码有什么问题,为什么会失败,而只有重要的事情-如何解决? 那么如何使用预制件来构建这些东西: 您从这里获取svn(仅此文件夹是必需的) 您可以获得平台的预制件,或者从源代码构建它,并将其放入从svn下载的文件夹中 您应该已经编译并安装了正式的Boost(请阅读我们在目录中提供的ReadMe.txt文件),因此需要执行以下操作: Boost C ++库的(我们在版本1.4.16中进行了测试) Boost-Extension(我们使用最新版本,我们将其作为boost \'boost / extension /
**
\'的一部分)。我们不得不制作一些颂歌(实际上只有一个)来增强扩展,因此我们在provide1ѭ文件夹中提供了它,因此在您下载时svn知道了,它仅是标题) Boost-Reflection(由于本教程而使用它,因为使用了最新版本,我们将其作为boost \'boost / reflection /
**
\'的一部分进行处理,为简单起见,我们建议将其放入
Boost.Extension.Tutorial/libs/boost/reflection
*中) 现在,当您的系统中使用官方Boost时,,4ѭ文件夹中仅包含Header Boost-reflection和Boost-extension,而make5ѭ文件夹中则包含premake4可执行文件,我们只需在Windows上调用
Boost.Extension.Tutorial/ premake4-build-windows.bat
即可获取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 --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。 我的提升是从此处下载1.46.1,并手动进行编译和安装。     
已邀请:
配置上必须有所不同,因为这是我测试的结果: cd / tmp svn结帐http://cloudobserver.googlecode.com/svn/branches/v0.4/ cloudobserver cd cloudobserver / Boost.Extension.Tutorial / libs / boost / svn co http://svn.boost.org/svn/boost/sandbox/boost/reflection/ cd ../../projects/linux-gmake/ 使 cd bin /调试/ 导出LD_LIBRARY_PATH =。 ./互操作性 输出:   第一次反思:这是一辆SUV。   反思第二:这是紧凑的。 发行可能吗? cd ../ .. 使-Bs config = release cd bin /发行版/ ./互操作性   第一次反思:这是一辆SUV。   反思第二:这是紧凑的。 更新资料 从那以后,我在32位linux上用 ubuntu gcc 4.4.5,提升1.42.0 ubuntu gcc 4.5.1,提升1.42.0 debian gcc 4.5.2-8,提升1.46.1.1 debian gcc 4.6.1 20110428(预发行版),增强版1.46.1.1 Mono-2.10.2.vmdk映像SuSE与 gcc 4.5.0 20100604,提升1.42.0.7.1.1(来自yast2 repo) gcc 4.5.0 20100604,提升1.46.1(来自源代码) 结论,提示 经过测试的所有版本都为我提供了正确且相同的输出。当然,PEBCAK一定会发生什么事吗?也许在新的VM上重复上述步骤以亲自查看? 我真正能看到的唯一错误是 错误的库路径(动态加载(旧的?)不兼容的so \'s版本) 使用错误的标题(导致版本不兼容)     

要回复问题请先登录注册