使用vs2019如何只编译一个c++文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用vs2019如何只编译一个c++文件相关的知识,希望对你有一定的参考价值。

教材没有教如何使用编译器。
然后我在使用vs2019的时候,单独编辑一个cpp文件(不在项目中)的话没办法F5
可是如果在项目中,创建多了文件就会一起编译。
请问怎么单独编译一个文件。
换电脑之前用的一直是vim和g++,有点蒙
非常感谢

比如说有cpp01 和cpp02 两个文件,你只想编译cpp02
1、最简单的方法
将cpp01文件里的int main() 改成 int main01()这种,编译器就会只执行 02里面的main()函数了
2、将cpp01全选,注释掉
3、在文件上右键-属性--生成中排除
参考技术A #include "fileentrepot.h"
#include ......
DWORD WINAPI SandFile(PVOID nsock)

SOCKET temp = (SOCKET)nsock;
char buff[256];
HASH Hash;
char filename[20];
LocalFile * fileinfo;
recv(temp, (char *)&filename, sizeof(filename), 0);
recv(temp, (char *)&Hash, sizeof(HASH), 0);
fileinfo = entrepot.GetLocalFileInfo(filename,Hash);
......

VS2019 C++动态链接库的创建使用

静态库:函数和数据被编译进一个二进制文件,通常扩展名为.lib,在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件。

动态库:往往提供2个文件,一个是引入库和一个DLL,引入库包含被DLL导出的函数和变量的符号名,DLL包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL中导出的函数。

使用DLL的好处:1.可以采用多种编程语言来编写;2.增强产品的功能;3.提供二次开发的平台;4.简化项目管理,同时进行开发;5.可以节省磁盘空间和内存,多个程序使用同一种资源;6.有助于资源的共享;7.有助于实现应用程序的本地化。

动态链接库的加载两种方式:

隐式链接:

①新建DLL的程序,在里面新建加法和减法两个函数;

技术图片

 

 编译后打开工程下的DEBUG文件夹,可以看到生成的dll文件;

技术图片

 

打开Cmd命令床开,切换到此路径下(复制文件路径,在命令窗口里右键即粘贴),输入dumpbin -exports Dll1.dll,可以看到该DLL导出的信息,如果dumpbin命令不识别,需要添加环境变量(我的安装路径是:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Tools\\MSVC\\14.23.28105\\bin\\Hostx64\\x64)

 技术图片

 

 我们重新回到代码中,在每个函数名前增加_declspec(dllexport),再重新编译生成,发现生成的文件中多了一个Dll1.lib文件,这就是前面说的引入库文件;

技术图片

 

 接着再重新运行cmd命令,可以看到我们导出的函数信息,因为c++具有重载功能,所以函数命名会按编译器内部标识的一堆符号显示。

技术图片

 

 测试一下结果:重新新建C++控制台程序,调用Add和Sub函数,在属性里附加库依赖项加入Dll1.lib,并把文件(Dll1.lib和Dll1.dll)复制到该目录下;

技术图片

 

 同样可以使用dumpbin查看测试程序的输入文件信息

技术图片

 

以上是关于使用vs2019如何只编译一个c++文件的主要内容,如果未能解决你的问题,请参考以下文章

VS2019编译的c++程序如何指定库文件?

如何在Windows 10上使用VS2019 编译C

如何在Windows 10上使用VS2019 编译C

如何在 Visual Studio 2019 中有条件地编译 c++ 源文件?

VS2019 C++动态链接库的创建使用 - 如何导出类

VisualStudio2019如何编译程序为单文件?