Die Verknüpfung curl in einem Projekt mit CMake
Ich habe keine Erfahrung mit C++, und brauchen nur eine kleine Anpassung einer C++ - Anwendung zu tun, einen HTTP-request um einen Benutzer zu authentifizieren.
Curlpp ist eine option, aber wenn auch die Bibliotheken, die ich erhalte eine Fehlermeldung auf dem Bau:
Undefined symbols for architecture x86_64:
"curlpp::OptionBase::OptionBase(CURLoption)", referenced from:
app_idomsconnector::RTMPAppProtocolHandler::GetAuthPassword(std::string) in libidomsconnector.a(rtmpappprotocolhandler.cpp.o)
curlpp::OptionTrait<std::string, (CURLoption)10002>::clone() const in libidomsconnector.a(rtmpappprotocolhandler.cpp.o)
So wie ich das verstehe muss ich hinzufügen/link sind in der Bibliothek der CMAKELists.txt Datei. Kann mir jemand sagen, was genau ich brauche, um hinzuzufügen? (unter OSX 10.8) Wie ich bereits erwähnt, ich habe keine Erfahrung mit C++, als ich mit Java die meiste Zeit.
- hast du/haben Sie das Recht libs? (64bit) -
Undefined symbols for architecture x86_64
- Wahrscheinlich nicht, curl installieren mit "port", würde aber vermuten, dass x86_64 für Mac. Muss ich die bauen es von Grund auf neu?
- Ich bin kein Mac-bewandert, ich war nur der Hervorhebung der curlpp Fehler, weil Sie sagten, Sie wurden nicht verwendet, um mit C++ und manchmal sind die Leute verpassen die Schlüssel-bits. Die Ursache könnte library-Pfade oder Namen, wenn es richtig installiert ist. Sorry, ich kann nicht mehr helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist genau das, was Sie zu tun haben 🙂
In C++, haben Sie zwei Arten von Dateien zu verwenden, wenn Sie eine Bibliothek zu Ihrem Projekt:
(das ist ein bisschen vereinfacht, aber es ist hier nicht wichtig)
Die Fehlermeldung sagt dir, dass Sie nicht das Objekt-Dateien für den compiler, damit er nicht weiß, was einige Worte (Klassen und Funktionen), die Sie in Ihrem Projekt bedeuten.
Wenn Sie eine ausführbare Datei mit dem Namen "MyExecutable", müssen Sie eine Zeile wie
in Ihrem CMakeLists.txt.
NACH dieser Linie, versuchen Sie, fügen
Ich Sie bereits eine target_link_libraries Zeile mit "MyExecutable", fügen Sie einfach curlpp zu den anderen Bibliotheken.