Найдите «имя» библиотеки (переключатели -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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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