Найдите «имя» библиотеки (переключатели -L -l)C++

Программы на C++. Форум разработчиков
Anonymous
Найдите «имя» библиотеки (переключатели -L -l)

Сообщение Anonymous »

Поскольку я новичок в 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: библиотека не найдена для -llibjpeg. Я предполагаю, что мой libjpeg.a просто не называется libjpeg, а имеет другое имя.

Есть ли способ узнать имя данного «файла библиотеки» libsomething.a или libsomething.dyn?



Хорошо, спасибо за все ваши ответы, теперь это работает.
Остается один небольшой вопрос: является ли это соглашением просто опустите «lib» или есть стандартный способ узнать имя?

Подробнее здесь: https://stackoverflow.com/questions/291 ... l-switches

Вернуться в «C++»