Ich habe versucht, Boost 1.61.0 zu importieren (heruntergeladen von SourceForge - Boost 1.61.0 als .7z), aber fehlgeschlagen.Fehler beim Importieren von Boost 1.61.0 in C++ - Projekt
Console:
"D:\Program Files (x86)\JetBrains\CLion 2016.2\bin\cmake\bin\cmake.exe" --build C:\Users\Marczak\.CLion2016.2\system\cmake\generated\WsServer-e351c9f9\e351c9f9\Debug --target WsServer -- -j 4
[ 50%] Linking CXX executable WsServer.exe
CMakeFiles\WsServer.dir\build.make:96: recipe for target 'WsServer.exe' failed
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/WsServer.dir/all' failed
CMakeFiles\WsServer.dir/objects.a(main.cpp.obj): In function `_static_initialization_and_destruction_0':
C:/Users/Marczak/boost_1_61_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'
C:/Users/Marczak/boost_1_61_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
C:/Users/Marczak/boost_1_61_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [WsServer.exe] Error 1
mingw32-make.exe[2]: *** [CMakeFiles/WsServer.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles/WsServer.dir/rule] Error 2
CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/WsServer.dir/rule' failed
mingw32-make.exe: *** [WsServer] Error 2
Makefile:117: recipe for target 'WsServer' failed
CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(WsServer)
set(BOOST_ROOT "C:/Users/Marczak/boost_1_61_0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")
set(SOURCE_FILES src/main.cpp)
find_package(Boost)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(WsServer ${SOURCE_FILES})
Wenn ich find_package(Boost 1.61.0 COMPONENTS system filesystem REQUIRED)
bekomme ich:
Error: Unable to find the requested Boost libraries.
Boost version: 1.61.0
Boost include path: C:/Users/Marczak/boost_1_61_0
Could not find the following static Boost libraries:
boost_system boost_filesystem
No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.
Ich versuchte Boost_USE_STATIC_LIBRARIES
auf zu setzen, aber es scheiterte auch. Ich benutze CLion 2016.2.
UPDATE: Ich versuchte auch ältere Versionen. Derselbe Fehler. Was ist in der .7z:
In anderen Themen, die ich sehe lib
Ordner. Aber hier sehe ich es nicht. Was sollte ich in BOOST_LIBRARYDIR
setzen?
UPDATE 2: Installierte Binärdatei von https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/. Ich habe bemerkt, dass es einen neuen Ordner gibt: lib64-msvc-14.0
. Es enthält viele .dll- und .lib-Dateien, z. boost_atomic-vc140-mt-1_61.dll
.
Boost.org sagt:
Wenn Sie Ihre Werkzeuge aus der Windows-Eingabeaufforderung verwenden, können Sie an der richtigen Stelle sind. Wenn Sie vorhaben, aus der Cygwin-Bash-Shell zu erstellen, laufen Sie tatsächlich auf einer POSIX-Plattform und sollten den Anweisungen für den Einstieg in Unix-Varianten folgen. Andere Befehls-Shells, wie MSYS, von MinGW, werden nicht unterstützt. Sie können funktionieren oder nicht.
Ich werde versuchen, mit Cygwin.
Haben Sie Boost mit dem Compiler kompiliert, den Sie hier verwenden? Klingt so, als hättest du gerade den Quellcode unter 'C:/Users/Marczak/boost_1_61_0' extrahiert. – drescherjm
@drescherjm Nein. Ich bin neu in C++. Wie kompiliere ich es? –
Vielleicht wäre ein Boost-Binär-Download für Mingw besser für Sie. Ich bin mir nicht sicher, was der Compiler/Toolkit 'CLion' unter Windows benutzt. Ist es mingw/gcc ?? – drescherjm