2010-06-04 361 views
1

我在尝试安装应用程序。在编译过程中失败,出现以下错误:/usr/bin/ld:找不到-lemu

/usr/bin/ld: cannot find -lemu 

我已经安装了libemu库,它现在目前居住在/ opt/libemu /。但是,当我尝试编译我的应用程序时,找不到该库。有什么方法可以纠正这个问题吗?


编辑:它也像化妆是导致: 它也像make文件与编译如下:

gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions 
build/temp.linux-x86_64-2.6/libemu_module.o 
-L/opt/libemu/lib -lemu -o build/lib.linux-x86_64-2.6/libemu.so 

我已经尝试设置我的LD_LIBRARY_PATH到/ opt/libemu,仍然不起作用 - 失败与上面提到的错误。

回答

2

你需要告诉链接它在哪里:

gcc stuff -L/opt/libemu -lemu 

或:

gcc stuff /opt/libemu/libemu.a 

其中stuff是你的正常文件编译/链接选项等

您还可以指定LIBRARY_PATH环境变量中的库路径:

LIBRARY_PATH=/opt/libemu 
export LIBRARY_PATH 

在您运行您的版本之前。另一种选择是查看gcc在哪里查找库,方法是运行:

gcc --print-search-dirs 

并将您的库放入其中一个列出的目录中。

编辑:从你的最新信息,你真的不清楚你想要建立什么。你想把一个静态库变成一个共享库吗?最重要 - 复制到/ opt/libemu目录中的库文件的确切文件名是什么?

+0

我试图编译的第三方应用程序,我根本问题:“让安装”。我在哪里指定-L/opt /。 。 。 ? – Julio 2010-06-04 15:36:53

0

环境变量LD_LIBRARY_PATH应包含(但可能不会默认)/ opt/libemu。

试运行:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/libemu 
make install 
+0

Ubuntu上的导出失败,指出无效的路径标识。经过一些谷歌搜索后,我想出了: export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:$ ROOTSYS/lib 哪个允许我导出,但是当我尝试再次制作时,库仍未找到。 。 。 – Julio 2010-06-04 15:50:01