기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
gcc로 컴파일된 라이브러리 파일 libtest.so 파일이 있는데요
libtest.so 파일을 이용하여 어플리케이션을 하나 만들고 있는데
어플리케이션 컴파일시 gcc로 컴파일을 하면 정상컴파일을 하는데요
g++로 컴파일을 하면 undefined reference to '함수' 에러가 나오면서
libtest.so 파일의 참조할수 없는 에러가 나오더라구요
라이브러리 파일을 g++로 컴파일하여 다시 libtest.so를 만들고 g++로 컴파일을 하면 정상적으로 컴파일이 됩니다.
g++로 컴파일된 libtest.so를 다시 gcc로 어플리케이션을 컴파일하면 같은에러가 나는데요
g++로 컴파일한 라이브러리는 어플리케이션 제작시 g++로 컴파일해야 하고
gcc 또한 gcc로 어플리케이션을 컴파일해야 하는데
제 생각엔 gcc문법에 맞추어서 코딩을 하면 g++에서도 정상컴파일이 되어야 하지 않는가요?
아니면 위의 방식대로 g++ gcc따로 쓰면서 사용해야 하는건가요?
감사합니다
"undefined reference to" 에러는 라이브러리에 그 함수가 없다는 얘기인데,
C++ 맹글링으로 라이브러리 안에 함수이름이 변경된 경우 종종 발생합니다.
extern "C", mangling 등으로 자료를 찾아보시면 좋을 것 같습니다.