Будучи довольно новым для C ++, у меня есть вопрос, касающийся в основном компилятора g ++ и особенно включения библиотек. Рассмотрим следующий make-файл:
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 дважды. Мой код компилируется и работает, если я использую make-файл выше. Но если я деактивирую первую запись LDLIBS и активирую вторую, я получаю ld: library not found for -llibjpeg
. Я предполагаю, что мой libjpeg.a
просто не называется libjpeg
, но носит другое имя.
Есть ли способ узнать имя заданного "библиотечного файла" libsomething.a
или libsomething.dyn
?
Хорошо, спасибо за все ваши ответы, теперь это работает.
Остается один маленький вопрос: принято ли просто исключать "lib" или существует стандартизированный способ узнать имя?