尝试编译并使用开放FST在 Ubuntu 13.10 上会导致链接错误,如“未定义对 dlopen 的引用”。如何修复此问题?在线搜索建议-ldl
在 gcc 命令行中包含此问题,但这还不够。
答案1
编译如下:
./configure LDFLAGS=-Wl,--no-as-needed
make
sudo make install
要编译a.cpp
使用该库的程序,请执行以下操作
g++ -I /usr/local/include a.cpp /usr/local/lib/libfst.so -Wl,--no-as-needed -ldl
-ldl
之后出现的很重要-Wl,--no-as-needed
。
程序的运行正如 OpenFST 提供的 README 所期望的那样,你只需要/usr/local/lib
在你的 中包含以下内容即可LD_LIBRARY_PATH
。例如,
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" ./a.out