Heim > Backend-Entwicklung > C++ > Kann CMake beim Erstellen einer DLL in Visual Studio automatisch alle Symbole exportieren?

Kann CMake beim Erstellen einer DLL in Visual Studio automatisch alle Symbole exportieren?

Susan Sarandon
Freigeben: 2024-11-27 07:54:09
Original
415 Leute haben es durchsucht

Can CMake Automatically Export All Symbols When Building a DLL in Visual Studio?

Alle Symbole beim Erstellen einer DLL exportieren

Szenario

In Visual Studio 2005 besteht das Ziel darin, beim Erstellen einer DLL automatisch alle Symbole zu exportieren. ohne manuell __declspec(dllexport)-Anmerkungen hinzuzufügen oder .def-Dateien zu erstellen. Ist das möglich?

Lösung mit CMake

Antwort: Ja, das können Sie mit den neuesten Versionen von CMake erreichen (ab Version 3.3.20150721-g9cd2f-win32- x86.exe oder höher). Diese Funktion befindet sich derzeit im Entwicklungszweig und wird in zukünftige Release-Versionen integriert.

Schritte:

  1. CMake herunterladen: Herunterladen die Entwicklungsversion von CMake über den bereitgestellten Link.
  2. Erstellen Sie ein CMake-Projekt:Konfigurieren Sie Ihr Projekt zur Verwendung von CMake basierend auf einer CMakeLists.txt-Datei.
  3. Symbolexport aktivieren: Fügen Sie die folgende Zeile zu Ihrer CMakeLists.txt-Datei hinzu:

    set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
    Nach dem Login kopieren
  4. Projekt erstellen: Erstellen Sie ein Visual Studio-Projekt mit Hilfe von CMake (cmake-gui) und kompilieren Sie es.

Hinweis: Dieser Ansatz erfordert die Deaktivierung der Gesamtprogrammoptimierung (/GL) während des Kompilierens.

Andere Ansätze

1. Verwenden Sie __declspec(dllexport):

Fügen Sie __declspec(dllexport) oder __declspec(dllimport) manuell vor Klassen- oder Funktionsdefinitionen hinzu, um Symbole explizit zu exportieren oder zu importieren.

2. Erstellen Sie eine Moduldefinitionsdatei (.def):

Schreiben Sie eine .def-Datei, die Funktionsdeklarationen enthält oder Symbole aus einer statischen Bibliothek exportiert.

Vorteile der CMake-Lösung

  • Automatischer Export aller Symbole ohne manuelle Anmerkungen oder .def-Dateien.
  • Plattformübergreifend Kompatibilität aufgrund der Fähigkeit von CMake, Build-Skripte für verschiedene Plattformen zu generieren.
  • Vereinfacht den Build-Prozess und macht manuelle Eingriffe überflüssig.

Das obige ist der detaillierte Inhalt vonKann CMake beim Erstellen einer DLL in Visual Studio automatisch alle Symbole exportieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage