我创建了一个.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
创建了共享库答案 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选项。你可能会做相反的事情。试试这个:)