J'ai un fichier de bibliothèque statique appelé libunp.a
, je sais que je pourrais utiliser gcc -lunp xx
pour créer un lien vers la bibliothèque.
Je pourrais utiliser #pragma comment(lib,"xxx.lib")
pour dire au compilateur Microsoft C/C++ d'inclure la bibliothèque; comment pourrais-je le faire sous Linux/GCC?
Il ne semble pas y avoir de mention de pragmas équivalents dans le page du manuel de GCC sur les pragmas .
Une des raisons pour lesquelles j'ai constaté que GCC ne supportait pas les liens dans le code source était que parfois, le lien correct dépend de l'ordre des liens ; et cela vous obligerait à vous assurer que l'ordre de liaison se passe correctement, peu importe l'ordre de compilation. Si vous comptez travailler autant, vous pouvez également passer les arguments de l'éditeur de liens sur la ligne de commande (ou autre), je suppose.
Les bibliothèques doivent être spécifiées lors de l'étape de liaison. Ces informations simplement n'appartient pas à une unité de traduction. Une unité de traduction peut être prétraitée, compilé et assemblé même sans étape de liaison.
Tout simplement parce que #pragma comment(lib,"xxx.lib")
est dans le fichier source ne signifie pas que le compilateur le consomme. En fait, il entre dans un commentaire et est ensuite utilisé par l'éditeur de liens. Pas très différent de * nix.
Utilisez cet indicateur GCC pour générer une erreur pour les pragmas inconnus. Il vous dira rapidement si le compilateur le comprend.
-Werror=unknown-pragmas