链接器错误:未定义的引用`的std :: CTYPE<焦炭> :: _ M_widen_init() [英] Linker error: undefined reference to `std::ctype<char>::_M_widen_init()

查看:130
本文介绍了链接器错误:未定义的引用`的std :: CTYPE<焦炭> :: _ M_widen_init()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了链接错误试图运行示例项目。你可以让我知道我该怎么解决这个问题?

先谢谢了。


使[1]:进入目录`/家庭/鲁米/ MobiusProject / Multiproc纸业/变压器/ SSG
在/ usr /斌/ G ++ -w -DMOBIUS_LITTLE_ENDIAN -DMOBIUS_LINUX -m32 -o ssgGen_Linux -L ../../的lib / Linux_lib / -L /家庭/鲁米/莫比乌斯/莫比乌斯/莫比乌斯-2.3 / CPP / lib中/ Linux_lib - L /家庭/鲁米/莫比乌斯/莫比乌斯/莫比乌斯-2.3 / CPP /外部/ lib中/ Linux的-L ../../外部/ lib中/ Linux的-lgenMain -lgen -lvary_num_compRangeStudy -lmulti_proc_PVPV -lmulti_procRJ -lmemory_moduleSAN -lcpu_moduleSAN -lio_port_moduleSAN -lerrorhandlersSAN -lTRex -lStudy -lPV -lComposer_RepJoin -lSAN -lbase -lstate -lmobutil -ldist -lstdc ++ -lcrypto -lpthread -lm使[1]:离开目录`/家庭/鲁米/ MobiusProject / Multiproc纸业/变压器/ SSG
使:离开目录`/家庭/鲁米/ MobiusProject / Multiproc纸业/变压器/ SSG/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libgenMain.a(Main.o):在函数'命令行(INT,CHAR **,INT和,字符*,烧焦*)' :
。Main.cpp的文字:( + 0x494):未定义引用'的std :: CTYPE :: _ M_widen_init()const的
。Main.cpp的文字:( + 0x4b1):未定义引用'的std :: CTYPE :: _ M_widen_init()const的
。Main.cpp的文字:( + 0x584):未定义引用'的std :: CTYPE :: _ M_widen_init()const的
/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libgenMain.a(Main.o):在函数'主':
。Main.cpp的文字:( + 0x894):未定义引用'的std :: CTYPE :: _ M_widen_init()const的
。Main.cpp的文字:( + 0x8b4):未定义引用'的std :: CTYPE :: _ M_widen_init()const的
/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libStudy.a(BaseStudyClass.o):BaseStudyClass.cpp:(.text+0x5c4):为`的std :: CTYPE :: _ M_widen_init()const的跟得比较未定义的引用
collect2:劳工处返回1退出状态
使[1]:*** [exec3]错误1
使:*** [选择]错误2


解决方案

看起来它是在这里不匹配的标准库的一部分。这两个最有可能的答案,我能想到的:


  • 您没有编译和使用相同版本的G ++的链接整个项目(包括所有库)。

  • 您正在使用的标准库不匹配,而你正从一个库版本,但是从不同的的.so 库头中的头/库路径版本。

I am getting linker error while trying to run a sample project. Could you let me know how can I fix this?

Thanks in advance.

make[1]: Entering directory `/home/rumi/MobiusProject/Multiproc-Paper/Transformer/ssg'
/usr/bin/g++ -w -DMOBIUS_LITTLE_ENDIAN -DMOBIUS_LINUX -m32 -o ssgGen_Linux    -L../../lib/Linux_lib/  -L/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib  -L/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/external/lib/Linux -L../../external/lib/Linux -lgenMain -lgen  -lvary_num_compRangeStudy -lmulti_proc_PVPV -lmulti_procRJ -lmemory_moduleSAN -lcpu_moduleSAN -lio_port_moduleSAN -lerrorhandlersSAN   -lTRex -lStudy -lPV -lComposer_RepJoin -lSAN -lbase -lstate -lmobutil -ldist  -lstdc++ -lcrypto -lpthread -lm

make[1]: Leaving directory `/home/rumi/MobiusProject/Multiproc-Paper/Transformer/ssg'
make: Leaving directory `/home/rumi/MobiusProject/Multiproc-Paper/Transformer/ssg'

/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libgenMain.a(Main.o): In function `commandline(int, char**, int&, char*&, char*&)':
Main.cpp:(.text+0x494): undefined reference to `std::ctype::_M_widen_init() const'
Main.cpp:(.text+0x4b1): undefined reference to `std::ctype::_M_widen_init() const'
Main.cpp:(.text+0x584): undefined reference to `std::ctype::_M_widen_init() const'
/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libgenMain.a(Main.o): In function `main':
Main.cpp:(.text+0x894): undefined reference to `std::ctype::_M_widen_init() const'
Main.cpp:(.text+0x8b4): undefined reference to `std::ctype::_M_widen_init() const'
/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libStudy.a(BaseStudyClass.o):BaseStudyClass.cpp:(.text+0x5c4): more undefined references to `std::ctype::_M_widen_init() const' follow
collect2: ld returned 1 exit status
make[1]: *** [exec3] Error 1
make: *** [opt] Error 2

解决方案

It looks like it's part of the standard library that's mismatched here. The two most likely answers I can think of:

  • You didn't compile and link the entire project (including all libraries) with the same version of g++.
  • The header/library paths you're using for the standard library mismatch, and you're getting the headers from one library version but the .so library from a different version.

这篇关于链接器错误:未定义的引用`的std :: CTYPE<焦炭> :: _ M_widen_init()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆