Ich versuche, von Linux auf Windows-Umgebung zu wechseln, aber finde es einen sehr harten Weg.Kompilieren boost :: asio Beispiel unter Windows
Dieses Mal wollte ich testen, ob ich mit Boost-Bibliothek arbeiten kann.
Ich hatte Probleme mit der Kompilierung Boost auf Windows, also habe ich vorkompilierte Version heruntergeladen. Ich habe alles ausgepackt und positiv getestet, dass ich die Header-Only-Librariers kompilieren kann.
Dann kopierte ich ein paar einfache boost :: asio Beispiel. Ich habe alles in Eclipse eingerichtet. Die Kompilierung lief gut, aber während des Linkens bekam ich ein 'undefiniertes Referenz' Problem zu 'boost :: system' internen Sachen.
C:/Users/jacek/cpp/boost_1_62_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'
C:/Users/jacek/cpp/boost_1_62_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
C:/Users/jacek/cpp/boost_1_62_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'
So habe ich ‚-lboost_system‘, sowie den Pfad zu dem Verzeichnis-Bibliotheken, um meine Verknüpfungsoptionen. Aber das hat nicht geholfen.
g++ "-LC:\\Users\\jacek\\cpp\\boost_1_62_0\\lib64-msvc-14.0" -o TestAsio.exe "src\\Main.o" -lboost_system
Ich überprüfte das Bibliotheksverzeichnis und fand dort eine Reihe von Dateien mit 'boost_system' im Namen. Sie sind:
- libboost_system-vc140-mt-1_62.lib
- libboost_system-vc140-mt-gd-1_62.lib
- libboost_system-vc140-mt-s-1_62.lib
- libboost_system -vc140-mt-sgd-1_62.lib
- libboost_system-vc140-s-1_62.lib
- libboost_system-vc140-sgd-1_62.lib
Ich wusste nicht, was ich verwenden sollte. Ich habe versucht, 'libboost_system-vc140-mt-1_62' zu den Verknüpfungsoptionen hinzuzufügen, ich habe alle anderen Dateien ausprobiert, ich habe versucht, die Dateien in das Linux-Muster 'libboost_system.a' umzubenennen, aber nichts hat funktioniert.
g++ "-LC:\\Users\\jacek\\cpp\\boost_1_62_0\\lib64-msvc-14.0" -o TestAsio.exe "src\\Main.o" -llibboost_system-vc140-mt-1_62 -llibboost_system-vc140-mt-gd-1_62 -llibboost_system-vc140-mt-s-1_62 -llibboost_system-vc140-mt-sgd-1_62 -llibboost_system-vc140-s-1_62 -llibboost_system-vc140-sgd-1_62
Was mache ich hier falsch? Bitte helfen ... YotKay
"-LLC: \\ sieht seltsam aus, -L" C: \\? – willll
Ich denke, ich fand hier eine Lösung: http://boost.org/more/getting_started/windows.html – YotKay
Der Punkt ist, dass die vorkompilierten Binärdateien mit Visual Studio kompiliert wurden und sie sind nicht kompatibel mit G ++. Scheisse! – YotKay