실행 파일만으로... 이것이 C 코드가 컴파일된 것인지, C++ 코드가 컴파일된 것인지 알 수 있는 방법이 있나요?
글쓴이: dodamn / 작성시간: 수, 2010/03/31 - 11:19오후
실행 파일만 가지고... 이것이 본디 C 코드가 컴파일되어서 생성된 것인지, 아니면 C++ 코드가 컴파일되어서 생성된 것인지 알 수 있는 방법이 있나요?
소스 코드가 C 아니면 C++로 작성된 건 확실하다는 가정하에서 말이죠.
실행 파일의 포맷, 즉 *NIX 에서 실행 가능한 ELF인지, Windows 에서 실행 가능한 PE인지, 혹은 과거 OS/2 에서 쓰이던 LE인지 등등, 에 따라서 살펴봐야 하는 것이 달라질 것으로 예상되긴 합니다만 감이 오질 않네요.
Forums:
C++로 짠 유닉스 계열
C++로 짠 유닉스 계열 실행 파일이라면 ldd 명령을 내렸을 때 libstdc++.so, PE라면 msvcpxx.dll(xx = 71, 80, 90, ...) 파일이 링크되어 있습니다. 다른 운영체제도 C++ 표준 라이브러리는 C 표준 라이브러리와 분리되어 있습니다.
---- 절취선 ----
http://blog.peremen.name
freebsd와 리눅스에서
freebsd와 리눅스에서 gcc로 컴파일한 실행 파일을 말씀해주신 대로 테스트 해 보았습니다. 잘 되네요. 감사합니다.
그런데... msvc로 컴파일된 windows 실행파일이나 과거 watcom 또는 borland 컴파일러로 컴파일된 dos 실행 파일의 경우에는 어떤 방법이 있는지 궁금합니다.
dependency walker로
dependency walker로 링크된 dll을 알 수 있습니다.
---- 절취선 ----
http://blog.peremen.name
댓글 달기