C ++ [[GNU :: Visibility ("по умолчанию")]] VS __declspec (dllexport) в Windows и LinuxC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ [[GNU :: Visibility ("по умолчанию")]] VS __declspec (dllexport) в Windows и Linux

Сообщение Anonymous »

Мне нужно было сделать некоторые общие библиотеки в C ++, и я использовал Linux в качестве операционной системы разработчика. Я знаю, что мне нужно сделать символы видимыми, если я хочу загрузить их через dlsym /

Код: Выделить всё

LoadLibrary
. Итак, в Linux все мои символы следовали этому шаблону: < /p>

Код: Выделить всё

extern "C" [[gnu::visibility("default")]] void f();
< /code>

Я использовал Clang с включенным C ++ 11, и я смог загрузить f < /code> в мою хост -программу. Когда я перешел в Windows, я использовал GCC 4.8.2 с включенным C ++ 11, и этот шаблон работал и на Windows Machine с LoadLibrary 
. (Мне нужно было использовать C ++ 11 для нового синтаксиса атрибутов). Я знаю, что в Windows мне нужно использовать __declspec (dllexport) для экспорта символов из общей библиотеки. Так что теперь? Является ли __declspec (dllexport) больше не требуется? ifdef s для конкретных целей?

Подробнее здесь: https://stackoverflow.com/questions/213 ... -and-linux
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»