IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Comment trouver l'option pour "linker" une librairie dans le compilateur ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut Comment trouver l'option pour "linker" une librairie dans le compilateur ?
    Bonjours,

    tout est dans le titre , enfin presque.

    Parfois , pour ne pas dire souvent on fait appelle a des api ou des libraries exterieur a la "stl ?"

    Celle que je cherche a faire son lier a ce code:

    https://docs.microsoft.com/en-us/win...etipstatistics

    Évidemment quand je veux compiler sou CB dans un projet de type consol en C:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ||=== Build: Debug in Microsoft_C (compiler: GNU GCC Compiler) ===|
    C:\Documents\Devcpp\Microsoft_C\main.c|10|warning: ignoring #pragma comment  [-Wunknown-pragmas]|
    C:\Documents\Devcpp\Microsoft_C\main.c||In function 'main':|
    C:\Documents\Devcpp\Microsoft_C\main.c|37|error: 'MIB_IP_FORWARDING' undeclared (first use in this function)|
    C:\Documents\Devcpp\Microsoft_C\main.c|37|note: each undeclared identifier is reported only once for each function it appears in|
    C:\Documents\Devcpp\Microsoft_C\main.c|40|error: 'MIB_IP_NOT_FORWARDING' undeclared (first use in this function)|
    ||=== Build failed: 2 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
    c'est peut être le code qui pose souci enfin bon si les exemples ne son pas valables ......
    il y a peut être une page de référence qui serai donner quelque part sur le site ?.

    Ce que je cherche a faire c est juste de lister les connexion active sur un système comme windows 10


    Merci d'avance

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il faut fait attention au fait que la directive préprocesseur pragma comment(...) est une directive propre à Visual C++ et n'a absolument rien de standard.

    Si tu utilise Code::Blocks, il y a de très fortes chances pour que le compilateur que tu utilises soit ... Gcc (le compilateur généralement utilisé sous linux), qui ne connait absolument pas cette directive préprocesseur (et qui n'est absolument pas obligé de la connaître)

    "L'idéal" est donc d'éviter cette directive "comme la peste", car, l'un dans l'autre, son utilisation t'oblige littéralement à utiliser un compilateur bien particulier .Tu peux, a priori, la supprimer purement et simplement, voire, si tu tiens à la garder, l'encadrer par une directive conditionnelle s'assurant que tu utilise visual C++ sous une forme qui serait proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #if defined( _MSC_VER)
    // la directive pargma comment ne sera utilisée que pour Visual C++
    #pragma comment(...) 
    #endif
    Dans Code::blocks, tu devra indiquer, au niveau des options de compilation
    • le dossier dans lequel le compilateur devra aller chercher les fichiers d'en-tête de la bibliothèque dans le menu Project->Build Options ... ->onglet Search Directory -> sous onglet Compiler
    • le dossier dans lequel l'éditeur de liens devra aller chercher après la bibliothèque dont tu as besoin (si elle n'est pas installée dans un des dossiers utilisé par défaut) dans le menu Project->Build Options ... ->onglet Search Directory -> sous onglet Linker
    • la bibliothèque que l'éditeur de liens devra utiliser lorsqu'il cherchera les fonctionnalités qu'elle founit dans le menu Project->Build Options ... ->onglet Linker Settings


    NOTA: Les EDI (Environnement de Développement Intégré) sont des outils absolument géniaux, qui peuvent faciliter énormément la vie du développeur. Mais ils présentent malgré tout un inconvénient majeur : ils gèrent tous leur projet d'une manière totalement différente des autres.

    L'idéal, pour pouvoir passer d'un EDI à l'autre, d'un compilateur à l'autre "sans trop de problème", c'est encore d'utiliser un système de définition de projet "agnostique" (comprend : qui ne dépend d'aucun EDI en particulier), qui soit capable de générer les fichiers utilisés par les différents EDI pour gérer leurs projets.

    Le fait est qu'il existe un outil génial pour (j'ai nommé ==> CMake<==)cela, car il est capable de générer des fichiers pour la grosse majorité des systèmes de compilation automatisée que l'on peut rencontrer (make, nmake, ninja, ...) et pour de nombreux EDI différents (Visual Studio, Eclipse, Code::Blocks ...) et que son support est même directement intégré dans certains d'entre eux (Visual Studio, QtCreator, ...)

    Je ne veux, bien sur, absolument pas t'obliger à quoi que ce soit, mais, l'un dans l'autre, même s'il faut un léger temps d'adaptation pour apprendre à utiliser correctement cet outil, le fait de choisir de l'utiliser pourrait te simplifier énormément la vie par la suite, en te permettant de changer d'EDI "à ta guise".

    Après tout, le choix d'un EDI est une question de gouts : on en aime un, ou non... ou on le déteste.

    Et les goûts et les couleurs évoluent avec le temps (Personnellement, je n'aimais vraiment pas les choux de Bruxelles quand j'étais petit, alors que j'en raffole maintenant ).

    Et mieux encore : Si tu peux décrire ton projet sans être relié à un EDI (et à un compilateur) particulier, tu donnes l'occasion à d'autres d'utiliser ton projet même s'ils ont de très bonnes raisons de refuser d'installer un EDI bien spécifique

    Je ne peux donc que te conseiller avec la plus grande vigueur de t'intéresser à cet outil
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut
    Merci beaucoup pour ta réponse plus que complète

    les fichiers d'en-tête de la bibliothèque on besoins du paramètre , comment je peux trouver la directive à mettre,
    par exemple pour winsock. il faudrai quelque chose de ce type "libws2_32.a" et avec -winsock ?

    Parce que si je doit poster sur le forum pour chaque paramètre et chaque librairie, sa risque d'en faire quelque post ....

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Winsock2 c'est ws2_32.lib pour VS ou probablement libws2_32.a pour gcc (depuis Windows 8.1 il me semble).
    wsock32.lib pour les versions plus anciennes, Winsock 1.1 et < (donc sûrement pas celle dont tu as besoin).
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment proposer plusieurs options pour un même champ
    Par firebird13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 07/05/2014, 11h09
  2. [Déploiement] Comment trouver l'option "Signature Authenticode" ?
    Par Dung-Tri dans le forum Framework .NET
    Réponses: 0
    Dernier message: 11/09/2008, 00h27
  3. Comment trouver l'option "noyau RBF" ou "noyau polynomial"
    Par ruiprincess dans le forum SAS STAT
    Réponses: 0
    Dernier message: 05/07/2008, 12h31
  4. Réponses: 8
    Dernier message: 20/04/2007, 17h23
  5. comment trouver code::blocks pour linux
    Par inno007 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 08/04/2007, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo