Linker 两个依赖库之间的未定义符号
首先,我为这个标题感到抱歉,但我真的不知道该怎么说。如果你有更好的想法,请随意编辑 第二,我做了广泛的研究,但没有找到解决办法。如果你在谷歌上找到了解决方案,不要生气。我找了,但没找到(或者我很笨,这也是可能的)Linker 两个依赖库之间的未定义符号,linker,dependencies,static-libraries,symbols,nm,Linker,Dependencies,Static Libraries,Symbols,Nm,首先,我为这个标题感到抱歉,但我真的不知道该怎么说。如果你有更好的想法,请随意编辑 第二,我做了广泛的研究,但没有找到解决办法。如果你在谷歌上找到了解决方案,不要生气。我找了,但没找到(或者我很笨,这也是可能的) 对于我的问题: 我正试图编译一个程序hacc,在他众多的依赖项中有diy和tess。此外,diy也是tess的依赖项之一 我把diy编译成libdiy.a 我把tess编译成libtess.a 当我试图编译hacc时,我有一个错误 [...]/tess/install/lib/lib
对于我的问题: 我正试图编译一个程序
hacc
,在他众多的依赖项中有diy
和tess
。此外,diy
也是tess
的依赖项之一
我把diy
编译成libdiy.a
我把tess
编译成libtess.a
当我试图编译hacc时,我有一个错误
[...]/tess/install/lib/libtess.a(tess.cpp.o): in function « item_type(ompi_datatype_t**) »:
tess.cpp:(.text+0x13e): undefined reference to « DIY_FLOAT »
nm告诉我:
nm [...]/diy/install/lib/libdiy.a | grep DIY_FLOAT
0000000000000010 D DIY_FLOAT
nm [...]/tess/install/lib/libtess.a | grep DIY_FLOAT
U DIY_FLOAT
U DIY_FLOAT
hacc
是使用链接标志编译的
-L${LIBS}/diy/install/lib -ldiy \
-L${LIBS}/tess/install/lib -ltess \
我哪里做错了什么?我是否应该尝试通过在libtess.a
中包含依赖项中的所有符号来编译tess
此外,diy也是苔丝的附属品之一
这意味着
-lday
必须遵循命令行上的-ltess
,即链接行上的库顺序不正确。更详细的解释和。对于链接,我并不认为lib标志的顺序有如此重要。。。