Microsoft Visual Studio 2013 und Boost

Mo1k

Mitglied
Hallo,

ich versuche nun schon den ganzen Tag die Boost Bibliothek mit Microsoft Visual Studio 2013 zum laufen zu bekommen, leider vergebens.

Microsoft Visual Studio 2013 : 12.0.30110.00 Update 1
Boost: 1.58.0

Boost habe ich nicht selber gebaut, sondern mir die exe runter geladen und installiert ( boost_1_58_0-msvc-12.0-64.exe )

Als nächstes habe ich ein leeres Projekt erstellt ( Win32-Konsolenanwendung ). Dann habe ich in den Projekteigenschaften unter C/C++ -> Allgemein unter Zusätzliche Includeverzeichnisse folgendes eingetragen: F:\boost_1_58_0

Unter der Rubrik Linker -> Allgemein habe ich unter Zusätzliche Bibliotheksverzeichnisse folgendes eingetragen: F:\boost_1_58_0\libs

Wenn ich nun das Beispielprogramm von Boost

#include "stdafx.h"
#include <boost/regex.hpp>
#include <iostream>
#include <string>


int _tmain(int argc, _TCHAR* argv[])
{
std::string line;
boost::regex pat("^Subject: (Re: |Aw: )*(.*)");

while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
return 0;
}

ausprobiere bekomme ich folgenden Fehler:

1>------ Erstellen gestartet: Projekt: ConsoleApplication1, Konfiguration: Debug Win32 ------
1> stdafx.cpp
1> ConsoleApplication1.cpp
1>LINK : fatal error LNK1104: Datei "libboost_regex-vc120-mt-gd-1_58.lib" kann nicht geöffnet werden.
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========

Kann mir jemand weiter helfen ?

Gruß
Mo1k
 
Am besten 2 Sachen:
Poste mal aus dem buildlog den aufruf an den Linker mit allen switches

Existiert die Datei:
F:\boost_1_58_0\libs\libboost_regex-vc120-mt-gd-1_58.lib
 
Hallo,

ich selbst habe zwar nur boost 1.57, aber ich denke nicht das die bei dem Versionssprung alles geändert haben. Ich habe Boost auch nicht selbst gebaut, sondern sowohl die 32bit als auch 64bit Version in einem Paket als Prebuild geladen.

Der Unterschied der mir direkt auffällt ist, dass ich im Pfad nicht den "libs" Ordner nutze, sondern bei mir heißt der "lib64-msvc-12.0" und dort ist auch die entsprechende lib-Datei, die bei dir fehlt vorhanden.

Kannst du bestätigen, dass die lib-Datei vorhanden ist? Und auch schauen ob du die richtige Plattform 32/64bit gelinkt hast? Das muss natürlich zu deinem Build im Projekt passen.

Gruß Jennesta
 
So, vielen Dank für die Hilfe. Es war tatsächlich ein falscher Ordner gelinkt. Nun habe ich ein Testprogramm gefunden um zu schauen ob alles auch richitg funktioniert:

#include "stdafx.h"
#include "boost/multi_array.hpp"
#include <cassert>
#include <iostream>


int _tmain(int argc, _TCHAR* argv[])
{
// Create a 3D array that is 3 x 4 x 2
typedef boost::multi_array<double, 3> array_type;
typedef array_type::index index;
array_type A(boost::extents[3][4][2]);

// Assign values to the elements
int values = 0;
for (index i = 0; i != 3; ++i)
for (index j = 0; j != 4; ++j)
for (index k = 0; k != 2; ++k)
A
[k] = values++;

// Read out values
int verify = 0;
for (index i = 0; i != 3; ++i)
for (index j = 0; j != 4; ++j)
for (index k = 0; k != 2; ++k)
std::cout << A
[k] << std::endl;
}

Wenn ich das ganze mit Debugging starten ausführe kommt folgender Fehler:

"ConsoleApplication1.exe" (Win32): "C:\Users\root\Documents\Visual Studio 2013\Projects\ConsoleApplication1\Debug\ConsoleApplication1.exe" geladen. Symbole wurden geladen.
"ConsoleApplication1.exe" (Win32): "C:\Windows\SysWOW64\ntdll.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
"ConsoleApplication1.exe" (Win32): "C:\Windows\SysWOW64\kernel32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
"ConsoleApplication1.exe" (Win32): "C:\Windows\SysWOW64\KernelBase.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
"ConsoleApplication1.exe" (Win32): "C:\Windows\SysWOW64\msvcp120d.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
"ConsoleApplication1.exe" (Win32): "C:\Windows\SysWOW64\msvcr120d.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
Das Programm "[21616] ConsoleApplication1.exe" wurde mit Code 0 (0x0) beendet.

Wenn ich es aber mit Starten ohne Debugging versuche wird das Programm normal in der Konsole ausgeführt.

Hat jemand zufällig eine Idee anwas das liegen könnte ?

Gruß
Mo1k
 
Was für ein Fehler? Da gibts keine Fehler. Programm läuft und beendet, keine Exception, nichts. Scheint alles in Ordnung zu sein.
 
Zurück