windows命令行下通过cl命令编译动态链接库示例

2023-05-16

    一般在windows下写一个c/c++的动态链接库,我们都是在visual studio或着visual c++这些ide里面进行编译和生成的,今天介绍,如何通过命令行来实现手动编译和生成动态链接库。

    首先,确保我们的系统中安装了visual studio 2019或着其他版本,这样,我们才可以使用命令行工具。

    开始->程序里面找到visual studio 2019这个文件夹,里面有命令行工具。找到"x64 Native Tools Command Prompt for VS 2019",然后点击,打开一个cmd命令行。

    

    我们准备我们的两个简单的程序,一个是动态库,一个是调用动态库的程序:

    test.c

#include <stdlib.h>
__declspec(dllexport) int add(int a,int b)
{
  return a + b;
}

    main.c

#include <stdio.h>
extern int add(int a,int b);

int main(){
  int i = add(1,2);
  printf("add(1,2)=%d\n",i);
  return 0;
}

    开始编译:

cl -c test.c

    在打开的cmd命令行中,切换到我们的项目目录下,然后运行cl指令:

     

    该命令执行之后,会生成一个test.obj文件,接着,我们运行链接命令:   

link -dll -out:test.dll test.obj

     

    从命令上,我们可以看出,会生成动态链接库test.dll,其实,同时还会生成test.lib,test.exp文件。

    

-----------------------------------------------------------

    以上两步操作,其实可以通过一个命令来完成,就是:

cl /LD test.c

     

    该命令可以直接生成动态链接库dll。

    我们还可以通过dumpbin命令,查看生成的动态库的信息:

dumpbin -exports test.dll

     

     有了动态链接库,我们接着利用这个动态链接库来生成main可执行程序。

cl main.c test.lib

    运行该命令,会生成main.exe程序,在命令行下,可以直接运行:main,就可以看到打印结果:

    

    以上就是在命令行下编译生成动态链接库的过程,如果你的系统里面没有cl指令,可能是没有安装visual studio或者visual c++,如果安装了,进入他自带的命令行工具,就有这些命令了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

windows命令行下通过cl命令编译动态链接库示例 的相关文章

随机推荐