Создание Windows DLL из исходных файлов C ++ - PullRequest
3 голосов
/ 22 октября 2009

У меня есть несколько исходных файлов на C ++, с помощью которых я хочу создать библиотеку динамических ссылок.

Я вижу, что это происходит в Linux с gcc -shared и ln

однако для Windows я полагаю, мне придется изменить исходные файлы для создания DLL.

Есть ли способ сгенерировать DLL (файл, похожий на * .so в linux) с предоставленными исходными файлами. Пожалуйста, поправьте меня, если я ошибаюсь, я думаю, * так же, как DLL для Linux.

Причина, по которой это необходимо, заключается в использовании SWIG для вызова функций C ++ в python в Windows Platfrom. Я застрял на этапе, который требует от меня создания DLL в Windows.

Ответы [ 3 ]

4 голосов
/ 24 октября 2009

Точный подход зависит от того, какой компилятор вы используете, но процедура, вероятно, задокументирована. Например, если вы хотите создать DLL с помощью Visual Studio, пошаговое руководство доступно здесь .

2 голосов
/ 12 ноября 2009

Функции DLL, которые можно вызывать извне DLL, имеют специальные макро-ключевые слова

__ declspec (dllexport) void __cdecl SomeFunction (int a, int b);

1 голос
/ 12 ноября 2009

Какой компилятор вы используете? Для Visual C ++ командная строка, которая создает динамическую библиотеку из заданных объектных файлов, выглядит следующим образом:

link -nologo -dll -out:mylib.dll -implib:mylib.lib myobj1.obj myobj2.obj ...

Также при компиляции ваших исходных файлов в объектные файлы вам нужно будет использовать опцию -D, чтобы определить любые макросы, необходимые для обеспечения экспорта символов вашей динамической библиотеки.

...