Макрос API для создания библиотеки C ++ - PullRequest
2 голосов
/ 08 мая 2020

Я новичок в C ++.

Я создал проект библиотеки CMake и добавил 2 библиотеки, одна называется mosai c (общая) и mosaic_s (stati c).

И проблема в том, как я могу использовать макросы для автоматической установки макроса для __declspe c (dllexport) при построении разделяемой библиотеки и установки его значения «ничего» при создании stati c one.

1 Ответ

0 голосов
/ 08 мая 2020

Определите символ в вашем файле make, который сообщит вам, является ли он общим или нет, а затем вы можете использовать препроцессор, например

#ifndef SHARED
#define EXPORT
#else
#define EXPORT __declspec(dllexport)
#endif

, а затем в вашем коде будет

EXPORT whatever_you_are_exporting

, и если вы определили SAHRED в своем make-файле, тогда EXPORT будет __declspec(dllexport), а если вы этого не сделали, то EXPORT станет ничем.

...