Rumah > pembangunan bahagian belakang > C++ > Bolehkah CMake Mengeksport Semua Simbol Secara Automatik Apabila Membina DLL dalam Visual Studio?

Bolehkah CMake Mengeksport Semua Simbol Secara Automatik Apabila Membina DLL dalam Visual Studio?

Susan Sarandon
Lepaskan: 2024-11-27 07:54:09
asal
361 orang telah melayarinya

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

Eksport Semua Simbol Apabila Mencipta DLL

Senario

Dalam Visual Studio 2005, matlamatnya adalah untuk mengeksport semua simbol secara automatik apabila mencipta DLL, tanpa menambah anotasi __declspec(dllexport) atau membuat fail .def secara manual. Adakah ini mungkin?

Penyelesaian dengan CMake

Jawapan: Ya, anda boleh mencapai ini dengan versi terkini CMake (dari versi 3.3.20150721-g9cd2f-win32- x86.exe dan seterusnya). Ciri ini kini berada dalam cawangan pembangunan dan akan disepadukan ke dalam versi keluaran masa hadapan.

Langkah:

  1. Dapatkan CMake: Muat turun versi pembangunan CMake daripada pautan yang disediakan.
  2. Buat Projek CMake: Konfigurasikan projek anda untuk menggunakan CMake berdasarkan fail CMakeLists.txt.
  3. Dayakan Eksport Simbol: Tambahkan baris berikut pada fail CMakeLists.txt anda:

    set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
    Salin selepas log masuk
  4. Bina Projek: Cipta projek Visual Studio dengan bantuan CMake (cmake-gui) dan susunkannya.

Nota: Pendekatan ini memerlukan melumpuhkan Pengoptimuman Seluruh Program (/GL) semasa menyusun.

Pendekatan Lain

1. Gunakan __declspec(dllexport):

Tambah __declspec(dllexport) atau __declspec(dllimport) secara manual sebelum definisi kelas atau fungsi untuk mengeksport atau mengimport simbol secara eksplisit.

2. Cipta Fail Definisi Modul (.def):

Tulis fail .def yang mengandungi pengisytiharan fungsi atau simbol eksport daripada perpustakaan statik.

Kelebihan Penyelesaian CMake

  • Eksport automatik semua simbol tanpa anotasi manual atau .def fail.
  • Keserasian merentas platform disebabkan oleh keupayaan CMake untuk menjana skrip binaan untuk platform yang berbeza.
  • Memudahkan proses binaan, menghapuskan keperluan untuk campur tangan manual.

Atas ialah kandungan terperinci Bolehkah CMake Mengeksport Semua Simbol Secara Automatik Apabila Membina DLL dalam Visual Studio?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan