g++ 라이브러리 질문
g++ 컴파일 시 참조 오류가 나서 라이브러리를 설치하고 -l 옵션을 주라고 하셔서 여러군데를 찾아서 노력을 해보았습니다.
brilliantrussian.cpp libmmc.a parity.h
brilliantrussian.h libmzd.a ple.cpp
brilliantrussian.o libmzp.a ple.h
config.h.in libple.a ple.o
debug_dump.cpp libple_russian.a ple_russian.cpp
debug_dump.h libsolve.a ple_russian.h
debug_dump.o libstrassen.a ple_russian.o
Doxyfile libtriangular.a solve.cpp
echelonform.cpp libtriangular_russian.a solve.h
echelonform.h m4ri_config.h solve.o
echelonform.o m4ri.h strassen.cpp
graycode.cpp misc.cpp strassen.h
graycode.h misc.h strassen.o
graycode.o misc.o test.cpp
io.cpp mmc.cpp test.cpp~
io.cpp~ mmc.h test.o
io.h mmc.o triangular.cpp
io.o mzd.cpp triangular.h
libbrilliantrussian.a mzd.cpp~ triangular.o
libdebug_dump.a mzd.h triangular_russian.cpp
libechelonform.a mzd.o triangular_russian.h
libgraycode.a mzp.cpp triangular_russian.o
libio.a mzp.h xor.h
libmisc.a mzp.o
아키이브 파일들을 모두 만들어서 링크 해주려고 했습니다.
g++ -o test1 test.cpp -L /home/user1/Desktop/Test -l l* 이라고 치면
/usr/bin/ld: cannot find -llibbrilliantrussian.a 오류가 뜹니다.
g++ -o test1 test.cpp -L /home/user1/Desktop/Test -l lib*
g++ -o test1 test.cpp -L /home/user1/Desktop/Test -l *
여러종류 다 해보았지만 모두 되지 않는군요...
라이브러리 링크는 어떻게 해야 되는 겁니까??
아카이브 파일을 만든 것은 잘 한겁니까??
도와주세요 gcc,g++ 고수님들
예를들어 libfoo.a, libhoo.a 를
예를들어 libfoo.a, libhoo.a 를 링크하려면
-lfoo -lhoo
이런식으로 옵션을 추가해주면 됩니다.
다른 질문글까지 묶어서 설명드리자면, 우선
다른 질문글까지 묶어서 설명드리자면,
우선 지금하고자하는 일은 난이도가 높은 일은 아니지만,
전혀 모르는 사람이 며칠 공부해서 직접 하기에는 어려운 일로 보입니다.
주위에 도움을 청하시는게 좋겠고요..
그게 여의치 않다면..
확인해봐야할 것이.
현재 VC 프로젝트에서 링크 옵션이나 그밖의 설정을 먼저 확인해봐서
OOOO.lib ( 또는 OOOO.dll ) 를 포함하고 있는 경우와
그렇지 않은 경우로 나눠서 생각해봐야하는데요.
OOOO.lib를 포함하고 있는 경우 ( 아마도 이경우일듯 싶습니다.)
여기에 해당하는 리눅스버전의 라이브러리를 가지고 있어야합니다. ( 이게 OOOO.a )
이걸 어떻게 만드느냐는 웹에서 검색해서 소스를 받은 다음에,
거기에 있는 설명을 따라서 만드시고요..
OOOO.lib를 포함하지 않은 경우는 좀 더 쉬운데요..
현재 있는 코드내에서 다 해결이 되는거라
파일명의 순서 등만 잘 정해줘도 되는데..
그냥 코드를 다 올려보시죠..
댓글 달기