2010-01-24 5 views
2

Snow Leopard에서 i386 C++ 응용 프로그램을 컴파일 중입니다.GDB가 -D_FILE_OFFSET_BITS = 64와 함께 작동하지 않습니다.

-D_FILE_OFFSET_BITS = 64로 컴파일하면 gdb에서 바이너리를 사용할 수 없습니다. 다음과 같은 오류 메시지가 나타납니다.

경고 : "/var/folders/kw/kwmH332LGwCIh3GrRREgCk+++TI/-Tmp-//ccZfMAM5.o"개체 파일을 찾을 수 없습니다. "test"에 사용할 수있는 디버그 정보가 없습니다. cpp ".

답변

4

이것은 아마도 -D_FILE_OFFSET_BITS=64과 아무 관련이 없습니다.

Mac OS에서 컴파일 할 때 디버그 정보는 실행 파일로 가져 오지 않고 개체 파일에 남아 있으며 디버거는이 파일을 찾습니다. , 이것은 (ccZfMAM5.o 같은 이름으로)를 일시적으로 오브젝트 파일을 생성

g++ -D_FILE_OFFSET_BITS=64 -g test.cpp 

실행에 파일을 개체를 링크 한 다음 을 제거 : 당신의 경고 메시지에서

, 당신이 한 것으로 보인다 오브젝트 파일 디버거는 더 이상 존재하지 않는 객체 파일에서 디버그 정보를 읽을 수 없으므로 경고 메시지가 나타납니다. 대신

, 이렇게 :

g++ -g -c -D_FILE_OFFSET_BITS=64 test.cpp 
g++ -g test.o 

test.o 오브젝트 파일 (및 그 안에 포함 된 디버그 정보) 디버거를 사용할 수를 만들 것입니다.

+0

예, D_FILE_OFFSET_BITS은 빨간색 청어라고 생각합니다. 감사 –

관련 문제