gcc 2.95.1 과 3.3.1의 차이가 뭔가요?
gcc 2.95.1로 컴파일하면 에러없이 잘되는데
gcc 3.3.1로 컴파일하면 다음과 같은 에러가 우수수납니다.
함수를 못찾겠다고 하는데..
실제 undefined라고 나오는 함수는 다 정의되어 있고 link할때 다 포함시켜주고 있습니다.
gcc 3.3.1에서 별도로 또뭔가 해줘야 하는게 있는거 같은데 그게 무엇인지 모르겠네요.
gfx.o(.text+0xaf8): In function `S9xEndScreenRefresh':
: undefined reference to `S9xAutoSaveSRAM()'
memmap.o(.text+0x6d4): In function `CMemory::LoadROM(char const*)':
: undefined reference to `_splitpath(char const*, char*, char*, char*, char*)'
memmap.o(.text+0x6f8): In function `CMemory::LoadROM(char const*)':
: undefined reference to `_makepath(char*, char const*, char const*, char const*
, char const*)'
memmap.o(.text+0x9c0): In function `CMemory::LoadROM(char const*)':
: undefined reference to `_makepath(char*, char const*, char const*, char const*
, char const*)'
컴파일러의 Major version이 바뀌면서 name mangling이
컴파일러의 Major version이 바뀌면서 name mangling이 바뀌어서 그렇습니다.
모든 object를 같은 계열의 컴파일러로 컴파일해야만 합니다.
---
http://coolengineer.com
댓글 달기