首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu上编译和使用OpenFST时,如何处理“对dlopen的未定义引用”错误?

在Ubuntu上编译和使用OpenFST时,如何处理“对dlopen的未定义引用”错误?
EN

Ask Ubuntu用户
提问于 2014-04-24 13:02:51
回答 1查看 31.1K关注 0票数 3

在Ubuntu13.10上编译和使用OpenFST会导致链接错误,比如“对dlopen的未定义引用”。怎么才能解决这个问题?在线搜索建议在gcc命令行中包括-ldl,但这还不够。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2014-04-24 13:02:51

汇编如下:

代码语言:javascript
复制
./configure LDFLAGS=-Wl,--no-as-needed
make
sudo make install

要编译使用库的a.cpp,请执行以下操作

代码语言:javascript
复制
g++ -I /usr/local/include a.cpp /usr/local/lib/libfst.so -Wl,--no-as-needed -ldl

-ldl出现在-Wl,--no-as-needed之后是很重要的。

运行您的程序就像您从OpenFST提供的自述文件中所期望的那样工作,您只需要在LD_LIBRARY_PATH中有/usr/local/lib。例如,

代码语言:javascript
复制
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" ./a.out
票数 9
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/454443

复制
相关文章

相似问题

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