4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
JNJ
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
cmd批量编译 - CSDN
来自 : CSDN技术社区 发布时间:2021-03-25

最近有一个需求,一个目录下有N多个.c文件,想办法把它们全部编译。

用VC建个工程把它们全扔进去构建是不行的,连接的时候会出错,因为VC最后只想生成一个exe文件,这样最后只能得到一堆obj文件。

后来知道了VC的编译器是cl.exe(如果你的cmd不识别cl,请查看这篇文章:http://blog.csdn.net/wangningyu/article/details/4830920,设置环境变量),可以在命令行中使用,然而用它也不能一个cl *.*完事,结果还是和上面一样,link不了,只能一次让它编译连接一个文件,而那么多文件我不可能手动一个一个地输入回车。于是我想只要写个程序遍历这个目录下所有.c文件然后调用命令行让cl编译不就行了?

于是做了这样一个程序:

// use.cpp : Defines the entry point for the console application.#include \"stdafx.h\"#include \"use.h\"#include cstdlib #include cstring #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif// The one and only application objectCWinApp theApp;using namespace std;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) int nRetCode = 0; // initialize MFC and print and error on failure if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // TODO: change error code to suit your needs cerr _T(\"Fatal Error: MFC initialization failed\") endl; nRetCode = 1; else { // TODO: code your application\'s behavior here. CFileFind finder;  BOOL bWorking = finder.FindFile(\"*.c\");  while (bWorking) {  bWorking = finder.FindNextFile(); char szTemp[MAX_PATH]; sprintf(szTemp, \"cl %s\", finder.GetFilePath()); // cout szTemp endl; system(szTemp); // 调用命令行 return nRetCode;}
把这个程序放到存放.c文件的目录下,运行就可以了。效果很让人满意。 收起 \"\" 展开全文 \"\"

本文链接: http://weiku1248802.immuno-online.com/view-748927.html

发布于 : 2021-03-25 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616
官网:http://