如何构建Windows平台下的动态库DLL

在构建动态库时,生成两个文件:导入库(.lib)和动态库(.dll)。GCC和mingw默认情况下会导出所有符号,但是vs默认情况下不导出任何符号。如果dll没有导出任何符号,则vs就不会生成导入库(这就是为什么vs构建dll时只生成了.dll,没有生成.lib的原因)。如果要导出函数或类型,必须使用__declspec( dllexport )。 在VS平台构建dll库时,CMAKE会添加如下预阅读全文

动态库的unresolved external symbols问题

跨平台的程序(在Linux下测试通过)如果是用CMake的CMakeLists.txt组织起来的,有时候会遇到这样的问题:里边有若干个工程是add_library,作为库,若干个工程是add_executable,作为可执行程序,其中,可执行程序调用了另一个工程生成的库,该库为动态库 在编译、运行该可执行程序的时候,链接过程中报经典链接错误——unresolved external symbols阅读全文