Nehmen wir an, Sie möchten die Boost- "Getting Started" -Beispiele erstellen und diese mithilfe eines Xcode-Projekts verknüpfen, anstatt sie in der Befehlszeile zu erstellen. Sie versuchen die Option nur für Header, und es funktioniert gut.Wie erstelle ich die Boost "Getting Started" Beispiele mit XCode?
Aber dann nehmen Sie das Beispiel Quelle:
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main()
{
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;
}
}
Und Sie wie folgt vor:
- die Boost-Bibliotheken bauen ./bjam
- öffnen Xcode installieren verwenden und eine neue C++ erstellen Befehlszeilen-Dienstprogramm-Projekt.
- Drag libboost_regex.dylib in die Produkte Ordner in den Gruppen & Dateien treeview (Überprüfung der Option, die sie kopieren Sie die Datei erlaubt)
- die Projektoptionen so einstellen, dass die Header-Suchpfade zeigt auf den Boost-Ordner
- Bauen umfassen und führe das Projekt aus!
Leider, wenn Sie die Konsole geöffnet haben (Run | Console) Sie gehen einen Fehler zu sehen, dass es nicht die dylib finden:
dyld: Library not loaded: libboost_regex.dylib
Referenced from: /Users/matt/Documents/Boost/test/GettingStarted/build/Debug/GettingStarted
Reason: image not found
also keinen besseren Weg, zu wissen, Um Xcode dazu zu bekommen, kopierst du die Dylib in dein_Projekt/Build/Debug/und es läuft! Hurra!
Detail-orientiert Person, die du bist, du ein paar Sachen in Standard-in geben, um es auszuprobieren:
> Subject: foo bar baz
> foo bar baz
Und dann Segfaults es.
Program received signal: “EXC_BAD_ACCESS”.
ACK!
Aber keine Angst. Ich weiß, was das Problem ist! Und wenn mich niemand dazu schlägt, poste ich die Lösung nach dem Mittagessen.
Ich nehme an, dass, wenn die Kopie nicht geschieht, kann es eine andere (nicht debuggen) Version der Bibliothek verknüpfen, die erklären würde, warum das Hinzufügen des Kopierschritts es behebt. –