尝试在 Ubuntu 13.10 上编译和使用OpenFST会导致链接错误,例如“对 dlopen 的未定义引用”。如何解决这个问题?在线搜索建议包括-ldl在 gcc 命令行中,但这还不够。
编译如下:
./configure LDFLAGS=-Wl,--no-as-needed
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
要编译a.cpp使用该库的哪个,请执行
g++ -I /usr/local/include a.cpp /usr/local/lib/libfst.so -Wl,--no-as-needed -ldl
Run Code Online (Sandbox Code Playgroud)
重要的是-ldl出现在 之后-Wl,--no-as-needed。
运行你的程序就像你从 OpenFST 提供的自述文件中期望的那样工作,你只需要/usr/local/lib在你的LD_LIBRARY_PATH. 例如,
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" ./a.out
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27257 次 |
| 最近记录: |