Dieser Artikel stellt hauptsächlich die relevanten Informationen zum Schreiben statischer Bibliotheken in Visual Studio 2017 vor. Interessierte Freunde können darauf verweisen.
Das Erstellen von Rädern ist eine interessante Sache leistungsstarkes Tool, das für sehr große Projekte geeignet ist, aber um ehrlich zu sein, ist es nicht so benutzerfreundlich, kleinere Projekte zu konfigurieren (andere Tutorials im Internet sind überhaupt nicht Orz-freundlich). Hier zeige ich Ihnen den richtigen Ansatz zum Aufbau einer einfachen statischen Bibliothek. (Übrigens, lassen Sie mich Ihnen ein wenig über
Erstellen von Lösungen beibringen – viele Menschen können den Unterschied zwischen Projekt und Lösung nicht verstehen. In VS ist Projekt die grundlegende Ausführungseinheit, und eine Lösung kann es enthält mehrere Projekte. ——Unsere statische Bibliothek enthält mehrere (.lib) Projekte und ein (.exe) Projekt zum Testen. Die Lösung ist
Wählen Sie Statische Bibliothek aus Geben Sie die Option „Vorkompilierter Header“ ein und entfernen Sie sie. Dasselbe gilt für die Quelldatei .cpp 🎜>(Beachten Sie, dass das Hinzufügen nur der .h-Datei ohne .cpp nicht funktioniert. Ein solches Projekt kann die .lib-Bibliothek nicht kompilieren, und beim Testen treten dann Fehler wie „“ auf. xxx.lib": Die angegebene Datei kann nicht geöffnet werden. Fragen Sie mich nicht, woher ich Orz kenne)
(ein weiterer Grund, warum ich die angegebene Datei nicht öffnen kann, ist, dass der von der .lib generierte Speicherort falsch ist. Hier , siehe Lösungs-Explorer->EigenschaftenEigenschaften
Seite -> Ausgaberichtung AusgabeverzeichnisDer Standard befindet sich im Debug-Verzeichnis, wer weiß, wie das falsch sein könnte)
Dann können Sie den Code schreiben:
Dann benötigen Sie ein Projekt zum Testen ( Erinnern Sie sich an das, was ich am Anfang gesagt habe: Eine Lösung kann mehrere Projekte haben, sie sind alle Ausführungseinheiten (ich werde später darüber sprechen, wie man eine Ausführungseinheit aufruft). Fügen Sie der Lösung ein neues Projekt hinzu im Projektmappen-Explorer:
Wählen Sie die Konsole aus, entfernen Sie den vorkompilierten Header und machen Sie dasselbe wie zuvor. Jetzt haben wir ein Projekt mit zwei Projektlösungen:
Schreiben Sie einen Testcode
// MathLib.h #pragma once int add(int x, int y); // MathLib.cpp #include "MathLib.h" int add(int x, int y) { return x + y; }
Jetzt müssen Sie eine
Referenzvon MathLib zum Testen hinzufügen. Dieser Schritt besteht eigentlich darin, den hinzuzufügen Korrekte Link-Optionen, wenn die IDE angewiesen wird, über die CL-Compiler-Befehlszeile zu kompilieren (CSAPP hat eine sehr inspirierende Erklärung. Nachdem die Quelldatei #die Header-Datei enthält, führt sie nur eine Reihe von Nichtverschiebungen für den Linker ein. Symbole, die es finden muss Diese Symbole in der Bibliotheksdatei (für statische Bibliotheken ist Linux
eine .a-Datei und Windows ist .lib), um die Verschiebung abzuschließen. Fügen Sie im Projektmappen-Explorer eine Referenz hinzu, wie in der Abbildung gezeigt VS listet die Projekte in der Lösung sehr sorgfältig als Alternativen auf, wählen Sie sie einfach aus.// Test.cpp #include "stdafx.h" #include "..\MathLib\MathLib.h" #include <iostream> int main() { std::cout << add(1, 2) << std::endl; return 0; }
Derzeit gibt es ein MathLib-Projekt in der Referenz von Test. Fügen Sie im nächsten Schritt den Include-Pfad für den CL-Compiler hinzu, d. h. wie Sie MathLib.h während der Vorkompilierungsphase finden, um die Einführung von Symbolen abzuschließen. Auf der Eigenschaftsseite „Testeigenschaften“->C++->Allgemein->Zusätzliche Include-Verzeichnisse sind zusätzliche Include-Pfade, die in anderen (benutzerdefinierten) Header-Dateien zusätzlich zu den Standardverzeichnissen der Bibliotheks-Header-Dateien enthalten sind um MathLib .h zu finden. Wählen Sie „OK“, um das Verzeichnis „MyStaticLibraryMathLib“ hinzuzufügen.
Zu diesem Zeitpunkt ist alles bereit, aber das F5-Build-and-Run-Ergebnis hat diesen Fehler gemeldet:Es heißt, dass .lib keine gültige Win32-Anwendung ist und nicht ausgeführt werden kann. Ja, ich wollte es ursprünglich nicht ausführen, aber woher weiß VS, welches der vielen Projekte in Solution ausgeführt werden soll? (Denken Sie an die vorherige Ausführungseinheit und verstehen Sie, was sie bedeutet. Das Kompilierungsergebnis jedes Projekts wird als ausführbar betrachtet.) Das erste hinzugefügte Projekt ist MathLib, daher führt VS seine Ausgabe standardmäßig aus, also ist es falsch. Finden Sie eine Möglichkeit, VS zum Ausführen der Ausgabe von Test (Test.exe) auf der Eigenschaftenseite „Solution Explorer->MyStaticLibrary Properties“ zu führen:
Setzen Sie das einzelne Startprojekt auf „Test“. , OK.
[Verwandte Empfehlungen]
1. ASP-kostenloses Video-Tutorial
2. ASP-Tutorial
3. Li Yanhuis grundlegendes ASP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonVS2017 schließt den Aufbau der statischen Bibliothek ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!