/ usr / bin / ld:找不到

时间:2011-03-16 17:59:59

标签: c++ linker shared-libraries

我创建了一个.so文件,并将其放在/opt/lib位置,并在此之后将此路径添加到LD_LIBRARY_PATH,此后我尝试使用以下命令编译主程序:< / p>

g++ -Wall -I/home/alwin/Development/Calculator/ main.cpp -lcalc -o calculator

我收到以下错误:

/usr/bin/ld: cannot find -lcalc
collect2: ld returned 1 exit status

有人可以帮我解决这个问题。 我使用代码块IDE

创建了共享库

4 个答案:

答案 0 :(得分:22)

-L/opt/lib添加到编译器参数中,这会使编译器和链接器在该文件夹中搜索libcalc.so的路径。

答案 1 :(得分:3)

当您拨打gcc时,应该说

g++ -Wall -I/home/alwin/Development/Calculator/ -L/opt/lib main.cpp -lcalc -o calculator

not -libcalc.so 

我对自动生成的品牌有类似的问题。

您可以创建从编译目录到库目录的软链接。 然后图书馆变成“本地”。

cd /compile/directory

ln -s  /path/to/libcalc.so libcalc.so

答案 2 :(得分:2)

您需要添加-L/opt/lib以告知ld查找共享对象。

答案 3 :(得分:2)

@Alwin Doss 您应该在-l之前提供-L选项。你可能会做相反的事情。试试这个:)