VS2017 schließt den Aufbau der statischen Bibliothek ab

Y2J
Freigeben: 2017-05-12 10:13:10
Original
3902 Leute haben es durchsucht

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->Eigenschaften

Eigenschaften

Seite

-> Ausgaberichtung Ausgabeverzeichnis

Der 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; }
Nach dem Login kopieren

Jetzt müssen Sie eine

Referenz

von 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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage