Partage
  • Partager sur Facebook
  • Partager sur Twitter

[CMake] Link d'une bibliothèque

cannot find -lcurl

    17 août 2018 à 15:34:36

    Bonjour à tous :)

    J'aimerais utiliser la bibliothèque libcurl dans mon projet. Je l'ai donc téléchargée et ajoutée dans l'arborescence de mon projet comme cela :

    Pour faire le lien, voici ce que j'ai mis dans mon CMakeLists.txt :

    project(untitled)
    
    set(CMAKE_CXX_STANDARD 11)
    
    include_directories(include)
    link_directories(lib)
    
    add_executable(untitled main.cpp)
    
    target_link_libraries(untitled libcurl.a)

    Jusqu'ici tout va bien, mon IDE ne dit rien et me propose les fonctions de cURL en auto-complétion. Sauf que, bien évidemment, à la compilation, ça ne fonctionne pas :

    c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lcurl
    

    Je ne sais pas où j'ai fait une erreur, mais je pense que mon CMakeLists n'est pas bon. Quelqu'un aurait une idée ? Merci ! ;)


    -
    Edité par plagoutte 17 août 2018 à 15:35:11

    • Partager sur Facebook
    • Partager sur Twitter
      21 août 2018 à 5:33:16

      link_directories(/* chemin de libcurl.a*/)

      et comme libcurl possède très certainement un support CMAKE, un petit tour dans la doc de CMAKE fournira probablement une solution plus propre ;)

      • Partager sur Facebook
      • Partager sur Twitter
      Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
        21 août 2018 à 11:12:11

        Ne pas utiliser link_directories ni include_directories, ce sont des fonctions qui polluent l'espace global. Préférez target_include_directories et target_link_libraries qui sont embarqués avec le target les rendant transitifs et exportés.
        • Partager sur Facebook
        • Partager sur Twitter

        git is great because Linus did it, mercurial is better because he didn't.

        [CMake] Link d'une bibliothèque

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown