dlopen()으로 shared object를 로딩하는 과정에서 에러가 발생하여 dlerror() 함수를 통해 에러의 원인을 확인해 보았습니다.
‘aaa.so’ is not a valid load module: Bad magic number
구글에서 에러 메세지를 이용해 검색하다가 해결의 실마리를 찾았습니다! file 명령어로 파일의 타입을 확인해 보니 executable과 shared library의 파일 타입이 다르더라구요.
$ file aaa.so
aaa.so: ELF-64 shared object file – IA64
$ file a.out
a.out: ELF-32 executable object file – IA64
aaa.so: ELF-64 shared object file – IA64
$ file a.out
a.out: ELF-32 executable object file – IA64