1. C代码编成静态库和动态库,如果没有.def文件,只生成动态库.dll, 不会生成静态库.lib.
以下可以代替.def 文件:
头文件中定义如下代码:
#if defined(UILIB_EXPORTS)
# if defined(_MSC_VER)
# define UILIB_API __declspec(dllexport)
# else
# define UILIB_API
# endif
#else
# if defined(_MSC_VER)
# define UILIB_API __declspec(dllimport)
# else
# define UILIB_API
# endif
#endif
函数接口加 宏UILIB_API 定义,导出函数。
2. C++代码编译静态库和动态库,没有试过用.def文件,试过上边提到的方法,没有定义 __declspec(dllexport)时只生成动态库,不生成静态库
定义宏UILIB_API ,类名用 宏定义定义 class UILIB_API 类名
3. 库文件生成到对应的路径:
动态库:属性-配置属性-链接器-常规-输出文件 (添加生成动态库路径包括动态库名称)
静态库:属性-配置属性-链接器-高级-导入库(添加生成静态库路径包括静态库名称) ? 不明白为啥在导入库 设置静态库的生成路径
本文介绍在C/C++中如何通过特定宏定义来控制动态库(.dll)和静态库(.lib)的生成,无需使用.def文件。文章详细解释了如何通过条件编译预处理器指令来指定函数和类的导出方式,并说明了如何设置生成路径。
1万+

被折叠的 条评论
为什么被折叠?



