2013-02-25 7 views
0

librt가 연결되어 있는지 확인하려면 #ifdef의 매크로가 있습니까? 예 : -lrt (gcc 포함)?librt 연결 확인

+1

왜 필요한지 설명해 주시겠습니까? (전처리 기는 일반적으로 링커에 관한 단서를 가지고 있지 않다. 연결하기 전에 실행된다.) – Mat

+0

필자는 흔히 사용하는 함수의 폴더를 정리하고 있었고 계속 작성하고 싶지는 않았다. 타이밍 파일의 함수들 중 하나는'librt'에 의존하기 때문에 함수가 호출되지 않더라도'librt'에 링크하지 않고 파일이 포함되면 컴파일이 실패합니다. –

+1

소스 코드가 아닌 빌드 시스템에서 처리해야 할 부분입니다. 누군가가 그 파일을 컴파일하고 아직 링크하지 않았다면 링커 플래그가 전혀 없어 문제가되지 않습니다. – Mat

답변

1

아니요, gcc에는 이러한 매크로가 없습니다 (검사 할 전 처리기 매크로를 덤프했습니다). Windows에서 Microsoft 컴파일러를 사용하면 libc 참조없이 빌드를 감지하기 위해 _VC_NODEFAULTLIB 매크로를 사용할 수 있습니다.

+0

확인해 주셔서 감사합니다. 필자 자신 (그리고 다른 사람들)이 미래에 그것을 할 수 있도록 프리 프로세서 매크로를 버린 방법을 보여줄 수 있습니까? –

+0

SO에 대한이 답변을보십시오 : http://stackoverflow.com/a/2224357/848177 –