현재 C++ 프로젝트를 GNU autotools toolchain을 사용하도록 이식하고 있으며 라이브러리 의존성 설정에 문제가 있습니다. 무슨 일이 일어나는 것 같아요 -lSDL2 -L/usr/local/lib -lSDL2_image -lSDL2
같은 명령을 ar
g ++ 의미 플래그를 제공한다는 것입니다.Autotools가 ar에 라이브러리 플래그를 추가합니다.
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
을 끄는 내용은 다음과 같습니다 : 여기
src/Makefile.am
에 대한 코드의
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
에서 인수를 추가하는 것 같다,하지만 난 그 변수를 제거하면, 다음이 같으면 플래그를 g++
에 지정하지 마십시오. 나는 무엇을해야합니까?
나는 당신의 해결책에 따라 시도해 보았고, 나는 한 걸음 더 가까이 있다고 믿지만, 나는 여전히 같은 오류를 낳는다. –
@MathManiac ** 귀하의 코드를 내 코드로 대체 했습니까? 아니면 귀하의 코드가 그대로 남아 있습니까? – Galik
* EDIT : * 잠깐 .. 두 번째 변수에 "LT"를 추가했다는 것을 깨달았습니다. 지금 그걸 바꾸면 .. –