В настоящее время я переношу свой проект на C++, чтобы использовать инструментальную цепочку GNU autotools, и у меня возникли проблемы с настройкой зависимостей между библиотеками. Что, кажется, происходит, так это то, что он дает команду ar
флаги, предназначенные для g ++, такие как -lSDL2 -L/usr/local/lib -lSDL2_image -lSDL2
.Autotools добавляет флаги библиотеки для ar
Вот код src/Makefile.am
:
noinst_LIBRARIES = libccade.a
libccade_a_SOURCES = CCade.h CCade_graphics.h CCade_graphics.cpp CCade_util.h CCade_util.cpp
libccade_a_LIBADD = $(libsdl2_LIBS) $(libsdl2_image_LIBS)
libccade_a_CFLAGS = $(libsdl2_CFLAGS) $(libsdl2_image_CFLAGS)
Вот что make
тушит:
ar cru libccade.a CCade_graphics.o CCade_util.o -lSDL2 -L/usr/local/lib -lSDL2_image -lSDL2
ar: invalid option -- 'L'
Usage: ar [emulation options] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin <name>] [member-name] [count] archive-file file...
...(more documentation on ar)...
Это, кажется, добавляя арг из libccade_a_LIBADD
, но если я удалю эту переменную, то она Wouldn 't дать флаги g++
. Что я делаю?
Я пробовал следовать вашему решению, и, хотя я считаю, что я на шаг ближе, я все равно получаю ту же ошибку. –
@MathManiac Вы заменили ** свой код моим кодом или ваш код все еще там? – Galik
* EDIT: * Wait .. Я понял, что вы добавили «LT» во вторую переменную. Теперь это изменилось. –