对于C++来说相当新颖我有一个关于g ++编译器的基本问题,尤其是包含库。考虑下面的makefile:查找库的“名称”(-L -l开关)
CPPFLAGS= -I libraries/boost_1_43_0-bin/include/ -I libraries/jpeg-8b-bin/include/
LDLIBS= libraries/jpeg-8b-bin/lib/libjpeg.a
# LDLIBS= -L libraries/jpeg-8b-bin/lib -llibjpeg
all: main
main: main.o
c++ -o main main.o $(LDLIBS)
main.o: main.cpp
c++ $(CPPFLAGS) -c main.cpp
clean:
rm -rf *.o main
正如你所看到的,我声明了LDLIBS变量两次。如果我使用上面的makefile,我的代码正在编译和工作。但是,如果我停用第一个LDLIBS条目并激活第二个条目,我会得到ld: library not found for -llibjpeg
。我假设我的libjpeg.a
只是不叫libjpeg
,但有一些不同的名称。
有没有办法找出给定的“库文件”的名称libsomething.a
或libsomething.dyn
?
好的,谢谢你所有的答案,它现在正在工作。 有一个小问题仍然存在:这是一个仅仅忽略“lib”还是有标准方法来查找名称的约定?