Clion生成动态链接库.dll

今天研究如何生成动态链接库.dll文件纠结了好久。在保证代码文件不报错的情况下,可能要注意几个方面。
一·项目结构要完整。
Clion项目生成后会和其他编程工具不同的地方在于会有一个CMakelist文件和cmake-build-debug文件夹。
如果没有Cmakelist可以使用importProject重新导入项目:https://blog.csdn.net/superSmart_Dong/article/details/98982679
如果编译不通过,在代码保证正确的情况下设置Setting->Build,Execution,Deployment->Cmake->Generation Path ,设置选中为你的cmake-build-debug。
二.编写好Cmakelist文件。
在代码确保没报错的前提下,只要写好Cmakelist文件就可以进行Build,生成链接库了。
add_library(DEMOProject SHARED Afile.cpp Afile.hpp)有这句话就能够生成出dll动态链接库了

add_library(<name> [STATIC | SHARED | MODULE]
            [EXCLUDE_FROM_ALL]
            [source1] [source2] [...])
该指令的主要作用就是将指定的源文件生成链接文件,然后添加到工程中去,[STATIC | SHARED | MODULE]指定生成链接库的类型,指定STATIC,SHARED,或者MODULE参数用来指定要创建的库的类型。STATIC库是目标文件的归档文件,在链接其它目标的时候使用。如果什么都不写那么就会生成.a文件,也就是Linux的静态链接库文件。

add_executable(DEMOProject Afile.cpp Afile.hpp)这是添加可执行文件的,如果把add_libarary写成这个命令,而你写的代码中也没有WinMain则会报找不到Winmain,编译出来的文件也不是链接库文件。会报类似下面的错误。

undefined reference to 'Winmain' DemoProject.exe:error:Id return 1 exit status
make[2]: *** [test_cpu] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/test.dir/all' failed
make[1]: *** [CMakeFiles/test.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

总结:Clion生成动态链接库.dll文件,确保CMakelist文件和cmake-build-debug正确,然后确保add_library正确,类型为SHARED,之后Run->build,就慢慢等,build完了一般就会在cmake-build-debug文件夹下生成.dll文件了。项目太大,生成时间太长,自己最好新建一个小项目试试行不行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章