2013-02-25 1 views
0

Y a-t-il une macro que je peux #ifdef pour vérifier si librt a été lié, par exemple par -lrt avec gcc?Vérifier la liaison de librt

+1

Pourriez-vous expliquer pourquoi vous avez besoin de ça? (Le pré-processeur n'a généralement pas la moindre idée de l'éditeur de liens, il fonctionne bien avant que la liaison soit prise en compte.) – Mat

+0

Je rassemblais un dossier de fonctions que j'utilise couramment et que je ne veux pas continuer à écrire. L'une des fonctions du fichier de timing dépend de 'librt' et provoque donc l'échec de la compilation si ce fichier est inclus sans lien avec' librt' même si cette fonction n'est pas appelée. –

+1

C'est quelque chose dont vous avez besoin dans votre système de construction, pas dans le code source. Si quelqu'un compile (et ne lient pas encore) ce fichier, il n'y aura pas de drapeau d'éditeur de liens et ce ne sera pas un problème. – Mat

Répondre

1

Non, gcc n'a pas une telle macro (j'ai jeté des macros de préprocesseur à vérifier). Sur Windows avec le compilateur Microsoft, vous pouvez utiliser la macro _VC_NODEFAULTLIB pour détecter les versions sans référence libc.

+0

Merci de vérifier. Pouvez-vous montrer comment vous avez jeté les macros du préprocesseur afin que je (et d'autres) puisse le faire à l'avenir? –

+0

Jetez un oeil à cette réponse sur SO: http://stackoverflow.com/a/2224357/848177 –

Questions connexes