Я пытаюсь использовать boost и cpp-netlib. Статическая библиотека cpp-netlib о 40м(релизная версия), даже ссылка на небольшой helloworld может быть очень медленный. Так что я хотел бы попробовать динамический dll + import lib при разработке, как я могу собрать dll + lib для cpp-netlib?
Я пытался изменить CMakeLists.txt, добавить ОБЩИЙ на линии
add_library(cppnetlib-uri SHARED ${CPP-NETLIB_URI_SRCS})
add_library(cppnetlib-server-parsers SHARED ${CPP-NETLIB_HTTP_SERVER_SRCS})
add_library(cppnetlib-client-connections SHARED ${CPP-NETLIB_HTTP_CLIENT_SRCS})
но только .длл генерируются, нет .Lib. Google говорит, что должны быть функции экспорта. Таким образом, одним из способов может быть написание фиктивной функции и экспорт их для генерации .lib?
Любым другим путем?
Это невозможно до текущей версии 0.12.0 cpp-netlib. Компоновщик будет генерировать библиотеку импорта для DLL только в том случае, если (и только если) одна или несколько функций экспортируются с использованием __declspec(dllexport)
атрибут или файл DEF. Однако эта функция в настоящее время не реализована в коде библиотеки. Вот почему после сборки вы можете видеть только библиотеки DLL, но не соответствующие им библиотеки импорта.
Этот раздел официальная документация подтверждает, что генерируются только статические библиотеки:
Начиная с версии 0.9.3, cpp-netlib создает три статические библиотеки. С помощью
Visual C ++ на Windows они являются:cppnetlib-клиент-connections.lib
cppnetlib-сервера parsers.lib
cppnetlib-uri.libПользователи могут найти их в ~ / cpp-netlib-build / libs / network / src.
Если вы хотите существенно сократить время сборки, я предлагаю вам прекомпиляцию заголовки библиотеки, которые вы включаете в свой код.