我试着用boost和。cpp-netlib的静态库大约是40m(发行版),即使链接到一个小型helloworld,也可能是非常的慢。因此,在开发时,我想尝试一下动态dll+导入库,如何为cpp构建dll+lib?
我尝试修改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})但是只有.dll生成,没有.lib。谷歌表示,必须有导出功能。因此,一种方法可以是编写一些虚拟函数并导出它们来生成.lib?还有别的办法吗?
发布于 2016-07-04 04:40:22
到当前版本0.12.0的cpp是不可能的。如果(并且只有当)使用__declspec(dllexport)属性或DEF文件导出一个或多个函数时,链接器将只为DLL生成一个导入库。但是,这是目前在库的代码中没有实现的特性。这就是为什么在构建之后,您可以只看到DLL,而不能看到它们各自的导入库。
正式文件的这一部分确认只生成静态库:
从0.9.3版本开始,cpp将生成三个静态库。在Windows上使用VisualC++,它们是: cppnetlib-client-connections.lib cppnetlib-server-parsers.lib cppnetlib-uri.lib 用户可以在~/构建/libs/src/src中找到它们。
如果您想大大减少构建时间,我建议您在代码中包含库的头文件( 预编译 )。
https://stackoverflow.com/questions/24576689
复制相似问题