2017-05-17 5 views
-4

Ich entpackte Boost Bibliothek inVisual C++: LINK: fatal error LNK1104: Datei kann nicht geöffnet 'libboost_system-vc120-mt-gd-1_55.lib'

C: \ boost

und lief

bootstrap.bat 
b2.exe install 

über Visual Studio 2017 Developer Command Prompt.

Es erstellt zwei Ordner für mich:

C:\boost\include 
C:\boost\lib 

Was ich

VC++ Directories > Include Directories 
Linker > General > Additional Library Directories 

Beziehungsweise zu

hinzugefügt.

Nun bauen Sie den folgenden Code:

#define _WIN32_WINDOWS 0x0501 
#define _WINSOCK_DEPRECATED_NO_WARNINGS 

#include <boost/asio.hpp> 

int main() 
{ 
    return 0; 
} 

erzeugt den folgenden Fehler:

1>main.cpp 
1>Unknown compiler version - please run the configure tests and report the results 
1>LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-gd-1_55.lib' 

Es ist für mich überraschend, dass VC++ für libboost_system-vc120-mt-gd-1_55.lib sieht, während die eingebauten lib Dateien sind:

libboost_system-vc-mt-1_55.lib 
libboost_system-vc-mt-gd-1_55.lib 

Welche fehlt eine Nummer. Bezieht es sich auf die Warnungen, die während des Aufbaus von Boost auftauchen?

Unknown compiler version - please run the configure tests and report the results


Update:

Bitte verlinken Sie nicht, diese Frage zu here. Der Pfad ist korrekt, da ich b2.exe mit install Switch ausgeführt habe. Darüber hinaus bezieht sich die Option (C++ → Allgemein → Zusätzliche Include-Verzeichnisse) auf die alte Visual Studio IDE. Ich weiß, dass es sehr dumm ist, solche Grundlagen zu erklären. Aber leider sehe ich eine starke Verbindung.

Update:

Es ist eine Schande, dass eine Bande von Benutzern diese Frage als Duplikat markieren, indem Sie auf eine falsche Frage verknüpft, während sie wissen, dass sie falsch sind. Wenn Sie einen Fehler machen, bestehen Sie nicht darauf.

+2

Vielleicht ist es eine bessere Idee [latest Boost 1.64] zu verwenden (http://www.boost.org/users/download/) – Pavel

+0

@KenWhite, der Weg, den ich ausgesucht habe, ist absolut richtig. Der andere Pfad erzeugt den gleichen Fehler. – uqla

+0

@KenWhite, Haben Sie überhaupt mit C++ gearbeitet? – uqla

Antwort

2

Ja wahrscheinlich ist dies verwandt. Boost-Build ist nicht in der Lage, Visual Studio-Compiler-Version zu ermitteln, daher schreibt es generalisierte Lib-Namen wie libboost_system-vc-mt-1_55.lib. Header versucht, die letzte bekannte Version von Visual Studio für den Boost 1.55 (VS2013 oder vs120) zu verwenden. Versuchen Sie es mit last Version des Boost, es sollte VS2017 unterstützen.

Verwandte Themen