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标志的顺序有如此重要。。。