makefile遇到问题:
g++ -Wall -fpermissive -o Demo_asr MT_SCYApp.o test_iat.o test_itr.o test_tts.o test_nlp.o -I./ -L./ -ldl -ltic -lthai
/usr/bin/ld: cannot find -lthai
collect2: error: ld returned 1 exit status
make: *** [Demo_asr] Error 1
我的makefile中的-L路径没有错,/usr/lib64/目录下也有相应的libxxx.so.xx文件,链接也有
$ ls -l libthai.so.0
lrwxrwxrwx. 1 root root 16 Jul 4 2016 libthai.so.0 -> libthai.so.0.1.4
最后只可能是链接有问题了
尝试其他库之后,总结规律发现是链接的名称libthai.so.0不对,凡是链接名称是libxxx.so的都可以找到,链接名称是libxxx.so.xx的都无法找到,所以链接名称libxxx.so后面不能加版本号。
解决方法就是在usr/lib64/中创建链接
$ sudo ln -s libthai.so.0 libthai.so
再make就能找到这个库了。
本文详细介绍了在使用makefile编译时遇到的链接库问题,特别是当链接库名称带有版本号(如libthai.so.0)时,ld无法正确找到的情况。通过创建软链接去除版本号,成功解决了这一问题。
945

被折叠的 条评论
为什么被折叠?



