在代码里调用VS编译器对源文件进行动态编译

这几天一直再捣鼓怎么在代码里调用编译器去对一个源文件进行编译,现在终于搞好了,话不多说现在开始(声明我调用的是VS的编译器,其他编译器调用原理应该差不多)!


1.添加环境变量

我的电脑--->属性--->高级系统设置--->环境变量--->(用户变量)新建

Path=D:\Visual Studio 2012\VC\bin

Include=D:\Visual Studio 2012\VC\include

Lib=D:\Visual Studio 2012\VC\lib

新建这三个变量就可以了,选择你们安装VS的路径,我安装在D盘就选的D盘,下面是我添加好的

在代码里调用VS编译器对源文件进行动态编译


2.然后调出cmd输入 cl -EHsc -FoE:\\1.obj E:\\1.cpp,(E:\\1.cpp是我自己在E盘下建的一个.cpp文件,你们建了就相应的替换就行,-Fo是指定要输出.obj的路径,运行成功会在相应的路径生成一个.obj文件) 如果提示找不到mspdbxxx.dll文件,则从D:\Visual Studio 2012\Common7\IDE 拷贝 “msobjxxx.dll,mspdbxxx.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件到D:\Visual Studio 2012\VC\bin下即可 。 如果出现像这样的错误“LINK : fatal error LNK1104: 无法打开文件“uuid.lib””,那么就到C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib这个路径下找到相应的 .lib文件复制到D:\Visual Studio 2012\VC\lib这个路径下,就是你自己安装的路径,缺哪个就复制哪个。

3.如果生成.obj文件了就继续输入link -out:E:\\1.dll 1.obj ,回车就生成 .dll文件了。


如果有什么地方有问题可以给我留言在代码里调用VS编译器对源文件进行动态编译在代码里调用VS编译器对源文件进行动态编译在代码里调用VS编译器对源文件进行动态编译