librt가 연결되어 있는지 확인하려면 #ifdef
의 매크로가 있습니까? 예 : -lrt
(gcc 포함)?librt 연결 확인
0
A
답변
1
아니요, gcc에는 이러한 매크로가 없습니다 (검사 할 전 처리기 매크로를 덤프했습니다). Windows에서 Microsoft 컴파일러를 사용하면 libc
참조없이 빌드를 감지하기 위해 _VC_NODEFAULTLIB
매크로를 사용할 수 있습니다.
+0
확인해 주셔서 감사합니다. 필자 자신 (그리고 다른 사람들)이 미래에 그것을 할 수 있도록 프리 프로세서 매크로를 버린 방법을 보여줄 수 있습니까? –
+0
SO에 대한이 답변을보십시오 : http://stackoverflow.com/a/2224357/848177 –
왜 필요한지 설명해 주시겠습니까? (전처리 기는 일반적으로 링커에 관한 단서를 가지고 있지 않다. 연결하기 전에 실행된다.) – Mat
필자는 흔히 사용하는 함수의 폴더를 정리하고 있었고 계속 작성하고 싶지는 않았다. 타이밍 파일의 함수들 중 하나는'librt'에 의존하기 때문에 함수가 호출되지 않더라도'librt'에 링크하지 않고 파일이 포함되면 컴파일이 실패합니다. –
소스 코드가 아닌 빌드 시스템에서 처리해야 할 부분입니다. 누군가가 그 파일을 컴파일하고 아직 링크하지 않았다면 링커 플래그가 전혀 없어 문제가되지 않습니다. – Mat