首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统库的错误

系统库的错误
EN

Stack Overflow用户
提问于 2015-03-02 18:34:21
回答 1查看 710关注 0票数 1

我重新组织了一个现有项目的目录树,进行了相关的Sconscript更改,在此过程中,我介绍了以下链接器错误:

/bin/ ld :注意:在DSO /usr/lib64 64/libstdc++.so.6中定义了'__cxa_free_exception@@CXXABI_1.3‘,因此尝试将其添加到链接器命令行/usr/lib64 64/libstdc++.so.6:未能读取符号:无效操作collect2: collect2:ld返回一个退出状态

我找到了这个thread,如果我遵循这个建议并试图对系统库进行明确的说明,那么它就会启动整个系统库(随之而来的错误将是libm,等等)。

因为在没有我的重组的情况下,这是很好的编译,那么在不再链接到系统库的情况下,可以做些什么呢?

在现有的SConstruct/Sconscript文件集中,没有任何地方引用到针对任何系统库的链接。这是由scon自动完成的,但是现在我已经重新安排了几个子项目,我遇到了上面的错误。

libpath和rpath都包括以下内容:‘/usr/lib 64’、‘/usr/lib 64/mysql’、'/usr/local/lib',

链接器命令

代码语言:javascript
复制
gcc -o build/debug/icln/src/foo/fooCert/build/scons/fooCertFromFiles -Wl,-rpath=/usr/lib64 -Wl,-rpath=/usr/lib64/mysql -Wl,-rpath=/usr/local/lib -Wl,-rpath=/ws/build/debug/icmn/src/common -Wl,-rpath=../../../../engine/build/scons -Wl,-rpath=../../../../foo/build/scons -Wl,-rpath=../../../../kb/build/scons -Wl,-rpath=../../../../bar/build/scons -Wl,-rpath=../../../../tables/build/scons -Wl,-rpath=../../../../utils/build/scons -L/usr/lib64 -L/usr/lib64/mysql -L/usr/local/lib -Lbuild/debug/icmn/src/common -L/ws/icmn/src/common -Lbuild/debug/icln/src/engine/build/scons -Lsrc/engine/build/scons -Lbuild/debug/icln/src/foo/build/scons -Lsrc/foo/build/scons -Lbuild/debug/icln/src/kb/build/scons -Lsrc/kb/build/scons -Lbuild/debug/icln/src/bar/build/scons -Lsrc/bar/build/scons -Lbuild/debug/icln/src/tables/build/scons -Lsrc/tables/build/scons -Lbuild/debug/icln/src/utils/build/scons -Lsrc/utils/build/scons -lcengine -lbar -lfoo -lkb -lcutils -lCommon -ltables -lglog -lboost_date_time -lboost_serialization -lboost_system -lboost_filesystem -lmongoclient -lboost_thread -lpthread -lmysqlcppconn -lmysqlclient

更新:我注意到构建最终二进制文件的调用是给gcc的,而不是g++。我仍在试图确定为什么它突然转向gcc而不是g++,但我认为这正朝着根本原因发展。

scons如何确定是否调用CC与CXX?

EN

回答 1

Stack Overflow用户

发布于 2015-03-02 20:08:28

解决了:因此,由于我执行了重新组织,对Glob()的调用解析为空列表,因为我已经将路径更改为源文件所在的位置。

修复:我需要更新Glob调用,以使用指向源的新路径( Sconscript和源文件不再像以前那样共存在同一个目录中)。

在此之前

代码语言:javascript
复制
source = Glob('*.cc')

之后

代码语言:javascript
复制
source = Glob('../../src/*.cc')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28816960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档