cmd。在命令行下进入服务的cmd命令到 Microsoft Visual C++ 6.0 的安装目录下的 bin 文件夹,在 vcvars32.bat

在cmd命令行下编译运行C/C++源文件
我的图书馆
在cmd命令行下编译运行C/C++源文件
一直用java来写程序,java配置好jre路径之后,在cmd下编译运行,很方便。
刚好要给一个舍友改下C程序,想到可不可以像java一样在环境变量里配置好C的编译路径呢?
于是上网搜了一下,得到如下结果:
一、如果装有VC,那就简单了,因为VC带有C的编译器,可以将此路径设置进环境变量。
操作步骤如下:
1.在命令行下,先运行vcvars32.bat(此文件在VC安装目录/Bin文件夹里,其中设置了环境变量和路径等信息)。或者,手动修改环境变量:
path=你安装VS的路径/VC98/Bin
lib=你安装VS的路径/VC98/你安装VS的路径/VC98/MFC/lib
include=你安装VS的路径/VC98/你安装VS的路径/VC98/MFC/你安装VS的路径/VC98/ATL/lib
2.然后直接用CL编译器编译C++程序(如:CL
/GX /MT zx.cpp)。
CL经常使用的选项为:
多线程dll(/MD)-动态链接,不包含运行时库文件
多线程(/MT)-静态链接,包含运行时库文件
参数,即编译选项如下:
最小化空间&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&
/Op[-] 改善浮点数一致性&
最大化速度&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Os 优选代码空间&
假设没有别名&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Ot 优选代码速度&
/Ob 内联展开(默认
n=0)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Ow 假设交叉函数别名&
禁用优化(默认值)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Ox 最大化选项。(/Ogityb2 /Gs)&
启用全局优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Oy[-] 启用框架指针省略&
/Oi 启用内部函数&
-代码生成-&
/G3 为 80386
进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Gh 启用 _penter 函数调用&
/G4 为 80486
进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/GH 启用 _pexit 函数调用&
/G5 为 Pentium
进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/GR[-] 启用 C++ RTTI&
/G6 对 PPro、P-II、P-III 进行优化
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/GX[-] 启用 C++ EH (与 /EHsc 相同)&
/G7 对 Pentium 4 或 Athlon
进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/EHs 启用 C++ EH (没有 SEH 异常)&
/GB 为混合模型进行优化(默认)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/EHa 启用 C++ EH(w/ SEH 异常)&
/Gd __cdecl 调用约定
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/EHc extern "C" 默认为 nothrow&
/Gr __fastcall 调用约定
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/GT 生成纤维安全&& TLS
/Gz __stdcall
调用约定&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Gm[-] 启用最小重新生成&
/GA 为 Windows 应用程序进行优化
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/GL[-] 启用链接时代码生成&
/Gf 启用字符串池
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/QIfdiv[-] 启用 Pentium FDIV 修复&
/GF 启用只读字符串池
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/QI0f[-] 启用 Pentium 0x0f 修复&
/Gy 分隔链接器函数
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/QIfist[-] 使用 FIST 而不是 ftol()&
/GZ 启用堆栈检查(/RTCs)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/RTC1 启用快速检查(/RTCsu)&
/Ge 对所有函数强制堆栈检查
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/RTCc 转换为较小的类型检查&
/Gs[num]&&
控制堆栈检查调用&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/RTCs 堆栈帧运行时检查&
/GS 启用安全检查
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/RTCu 未初始化的本地用法检查&
/clr[:noAssembly] 为公共语言运行库编译&
&&&&&&&&&&
noAssembly - 不产生程序集&
/arch: CPU 结构的最低要求,以下内容之一:&
&&&&&&&&&&&&&&&&&&&&&&&
SSE - 启用支持 SSE 的 CPU 可用的指令&
&&&&&&&&&&&&&&&&&&&&&&&
SSE2 - 启用支持 SSE2 的 CPU 可用的指令&
-输出文件-&
/Fa[file] 命名程序集列表文件
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Fo 命名对象文件&
配置程序集列表&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Fp 命名预编译头文件&
/Fd[file] 命名 .PDB
文件&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Fr[file] 命名源浏览器文件&
/Fe 命名可执行文件
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/FR[file] 命名扩展 .SBR 文件&
/Fm[file] 命名映射文件&
-预处理器-&
添加到程序集搜索路径&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Fx 将插入的代码合并到文件&
强制使用程序集/模块&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/FI 命名强制包含文件&
不抽出注释&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/U 移除预定义宏&
定义宏&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/u 移除所有预定义宏&
/E 预处理到
stdout&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
添加到包含搜索路径&
/EP 预处理到 stdout,没有
#line&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/X 忽略“标准位置”&
/P 预处理到文件&
启用调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Ze 启用扩展(默认)&
启用“编辑并继续”调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Zl 省略 .OBJ 中的默认库名&
启用旧式调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Zg 生成函数原型&
仅有行号调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Zs 只进行语法检查&
/Zp[n] 在 n
字节边界上包装结构&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/vd{0|1} 禁用/启用 vtordisp&
/Za 禁用扩展(暗指
/Op)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/vm 指向成员的指针类型&
/Zc:arg1[,arg2] C++ 语言一致性,这里的参数可以是:&
&&&&&&&&&&&&&&&&&&&&&
forScope - 对范围规则强制使用标准 C++&
&&&&&&&&&&&&&&&&&&&&&
wchar_t - wchar_t 是本机类型,不是 typedef&
选项响应文件&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/wo 发出一次警告 n&
打印此帮助消息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/w 为 n 设置警告等级 1-4&
只编译,不链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/W 设置警告等级(默认 n=1)&
最大外部名称长度&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Wall 启用所有警告&
/J 默认 char 类型是
unsigned&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Wp64 启用 64 位端口定位警告&
取消显示版权消息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/WX 将警告视为错误&
/showIncludes
显示包含文件名&&&&&&&&&&&&&&&&&&&&&&&&&&&
/WL 启用单行诊断&
/Tc 将文件编译为
.c&&&&&&&&&&&&&&&&&&&&&&&&&
/Yc[file] 创建 .PCH 文件&
/Tp 将文件编译为 .cpp
&&&&&&&&&&&&&&&&&
/Yd 将调试信息放在每个 .OBJ 中&
/TC 将所有文件编译为
.c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Yl[sym] 为调试库插入 .PCH 引用&
/TP 将所有文件编译为
.cpp&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/Yu[file] 使用 .PCH 文件&
/V 设置版本字符串
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/YX[file] 自动 .PCH&
禁用所有警告&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&& /Y- 禁用所有 PCH
/wd 禁用警告
n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&
最大内存分配(默认为 %)&
/we 将警告 n 视为错误&
/MD 与 MSVCRT.LIB
链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&& /MDd 与 MSVCRTD.LIB
调试库链接&
/ML 与 LIBC.LIB
链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/MLd 与 LIBCD.LIB 调试库链接&
/MT 与 LIBCMT.LIB
链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/MTd 与 LIBCMTD.LIB 调试库链接&
.DLL&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/F 设置堆栈大小&
/LDd 创建 .DLL
调试库&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
/link [链接器选项和库]&&
关于链接时参数的说明:
→配置属性→C/C++→代码生成→运行时库
可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)、单线程(/ML)、单线程调试(/MLd)。
MultiThread
Link (DLL)
Single Threaded
Static MultiThread
Dynamic Link (DLL)
_MT, and _DLL
其中以小写“d”结尾的选项表示的DEBUG版本的,没有“d”的为RELEASE版本。大型项目中必须要求所有组件和第三方库的运行时库是统一的,否则将会出现井喷。
单线程运行时库选项/ML和/MLd在VS2003以后就被废了。
/MT和/MTd表示采用多线程CRT库的静态lib版本。该选项会在编译时将运行时库以静态lib的形式完全嵌入。该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的二进制代码因链入庞大的运行时库实现而变得非常臃肿。当某项目以静态链接库的形式嵌入到多个项目,则可能造成运行时库的内存管理有多份,最终将导致致命的“Invalid
Address specified to
RtlValidateHeap”问题。另外托管C++和中不再支持/MT和/MTd选项。
/MD和/MDd表示采用多线程CRT库的动态dll版本,会使应用程序使用运行时库特定版本的多线程DLL。链接时将按照传统VC链接dll的方式将运行时库MSVCRxx.DLL的导入库MSVCRT.lib链接,在运行时要求安装了相应版本的VC运行时库可再发行组件包(当然把这些运行时库dll放在应用程序目录下也是可以的)。
因/MD和/MDd方式不会将运行时库链接到可执行文件内部,可有效减少可执行文件尺寸。当多项目以MD方式运作时,其内部会采用同一个堆,内存管理将被简化,问题也能得到缓解。
结论:/MD和/MDd将是潮流所趋,/ML和/MLd方式请及时放弃,/MT和/MTd在非必要时最好也不要采用了。
TA的最新馆藏[转]&
喜欢该文的人也喜欢1772人阅读
一直用java来写程序,java配置好jre路径之后,在cmd下编译运行,很方便。
刚好要给一个舍友改下C程序,想到可不可以像java一样在环境变量里配置好C的编译路径呢?
于是上网搜了一下,得到如下结果:
一、如果装有VC,那就简单了,因为VC带有C的编译器,可以将此路径设置进环境变量。
操作步骤如下:
1.在命令行下,先运行vcvars32.bat(此文件在VC安装目录/Bin文件夹里,其中设置了环境变量和路径等信息)。或者,手动修改环境变量:
path=你安装VS的路径/VC98/Bin
lib=你安装VS的路径/VC98/你安装VS的路径/VC98/MFC/lib
include=你安装VS的路径/VC98/你安装VS的路径/VC98/MFC/你安装VS的路径/VC98/ATL/lib
2.然后直接用CL编译器编译C++程序(如:CL /GX /MT zx.cpp)。
CL经常使用的选项为:
&& 多线程dll(/MD)-动态链接,不包含运行时库文件
&& 多线程(/MT)-静态链接,包含运行时库文件
附:CL 参数,即编译选项如下:
/O1 最小化空间&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&& /Op[-] 改善浮点数一致性
/O2 最大化速度&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Os 优选代码空间
/Oa 假设没有别名&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Ot 优选代码速度
/Ob&n& 内联展开(默认 n=0)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Ow 假设交叉函数别名
/Od 禁用优化(默认值)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Ox 最大化选项。(/Ogityb2 /Gs)
/Og 启用全局优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Oy[-] 启用框架指针省略
/Oi 启用内部函数
-代码生成-
/G3 为 80386 进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Gh 启用 _penter 函数调用
/G4 为 80486 进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /GH 启用 _pexit 函数调用
/G5 为 Pentium 进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /GR[-] 启用 C++ RTTI
/G6 对 PPro、P-II、P-III 进行优化 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /GX[-] 启用 C++ EH (与 /EHsc 相同)
/G7 对 Pentium 4 或 Athlon 进行优化&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /EHs 启用 C++ EH (没有 SEH 异常)
/GB 为混合模型进行优化(默认) &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /EHa 启用 C++ EH(w/ SEH 异常)
/Gd __cdecl 调用约定 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /EHc extern &C& 默认为 nothrow
/Gr __fastcall 调用约定 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /GT 生成纤维安全&& TLS 访问
/Gz __stdcall 调用约定&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Gm[-] 启用最小重新生成
/GA 为 Windows 应用程序进行优化 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /GL[-] 启用链接时代码生成
/Gf 启用字符串池 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /QIfdiv[-] 启用 Pentium FDIV 修复
/GF 启用只读字符串池 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /QI0f[-] 启用 Pentium 0x0f 修复
/Gy 分隔链接器函数 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /QIfist[-] 使用 FIST 而不是 ftol()
/GZ 启用堆栈检查(/RTCs) &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /RTC1 启用快速检查(/RTCsu)
/Ge 对所有函数强制堆栈检查 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /RTCc 转换为较小的类型检查
/Gs[num]&& 控制堆栈检查调用&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /RTCs 堆栈帧运行时检查
/GS 启用安全检查 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /RTCu 未初始化的本地用法检查
/clr[:noAssembly] 为公共语言运行库编译
&&&&&&&&&& noAssembly - 不产生程序集
/arch:&SSE|SSE2& CPU 结构的最低要求,以下内容之一:
&&&&&&&&&&&&&&&&&&&&&&& SSE - 启用支持 SSE 的 CPU 可用的指令
&&&&&&&&&&&&&&&&&&&&&&& SSE2 - 启用支持 SSE2 的 CPU 可用的指令
-输出文件-
/Fa[file] 命名程序集列表文件 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Fo&file& 命名对象文件
/FA[sc] 配置程序集列表&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Fp&file& 命名预编译头文件
/Fd[file] 命名 .PDB 文件&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Fr[file] 命名源浏览器文件
/Fe&file& 命名可执行文件 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /FR[file] 命名扩展 .SBR 文件
/Fm[file] 命名映射文件
-预处理器-
/AI&dir& 添加到程序集搜索路径&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Fx 将插入的代码合并到文件
/FU&file& 强制使用程序集/模块&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /FI&file& 命名强制包含文件
/C 不抽出注释&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /U&name& 移除预定义宏
/D&name&{=|#}&text& 定义宏&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /u 移除所有预定义宏
/E 预处理到 stdout&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /I&dir& 添加到包含搜索路径
/EP 预处理到 stdout,没有 #line&&&&&&&&&&&&&&&&&&&&&&&&&&&& /X 忽略“标准位置”
/P 预处理到文件
/Zi 启用调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Ze 启用扩展(默认)
/ZI 启用“编辑并继续”调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Zl 省略 .OBJ 中的默认库名
/Z7 启用旧式调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Zg 生成函数原型
/Zd 仅有行号调试信息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Zs 只进行语法检查
/Zp[n] 在 n 字节边界上包装结构&&&&&&&&&&&&&&&&&&&&&&&&&&&& /vd{0|1} 禁用/启用 vtordisp
/Za 禁用扩展(暗指 /Op)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /vm&x& 指向成员的指针类型
/Zc:arg1[,arg2] C++ 语言一致性,这里的参数可以是:
&&&&&&&&&&&&&&&&&&&&& forScope - 对范围规则强制使用标准 C++
&&&&&&&&&&&&&&&&&&&&& wchar_t - wchar_t 是本机类型,不是 typedef
@&file& 选项响应文件&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /wo&n& 发出一次警告 n
/?, /help 打印此帮助消息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /w&l&&n& 为 n 设置警告等级 1-4
/c 只编译,不链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /W&n& 设置警告等级(默认 n=1)
/H&num& 最大外部名称长度&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Wall 启用所有警告
/J 默认 char 类型是 unsigned&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Wp64 启用 64 位端口定位警告
/nologo 取消显示版权消息&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /WX 将警告视为错误
/showIncludes 显示包含文件名&&&&&&&&&&&&&&&&&&&&&&&&&&& /WL 启用单行诊断
/Tc&source file& 将文件编译为 .c&&&&&&&&&&&&&&&&&&&&&&&&& /Yc[file] 创建 .PCH 文件
/Tp&source file& 将文件编译为 .cpp &&&&&&&&&&&&&&&&& /Yd 将调试信息放在每个 .OBJ 中
/TC 将所有文件编译为 .c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Yl[sym] 为调试库插入 .PCH 引用
/TP 将所有文件编译为 .cpp&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /Yu[file] 使用 .PCH 文件
/V&string& 设置版本字符串 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /YX[file] 自动 .PCH
/w 禁用所有警告&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&& /Y- 禁用所有 PCH 选项
/wd&n& 禁用警告 n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&& &&& /Zm&n& 最大内存分配(默认为 %)
/we&n& 将警告 n 视为错误
/MD 与 MSVCRT.LIB 链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && /MDd 与 MSVCRTD.LIB 调试库链接
/ML 与 LIBC.LIB 链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /MLd 与 LIBCD.LIB 调试库链接
/MT 与 LIBCMT.LIB 链接&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /MTd 与 LIBCMTD.LIB 调试库链接
/LD 创建 .DLL&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /F&num& 设置堆栈大小
/LDd 创建 .DLL 调试库&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /link [链接器选项和库]&&
关于链接时参数的说明:
→配置属性→C/C++→代码生成→运行时库
可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试DLL(/MDd)、单线程(/ML)、单线程调试(/MLd)。
Reusable Library
Macro(s) Defined
Single Threaded
Static MultiThread
Dynamic Link (DLL)
_MT and _DLL
Debug Single Threaded
Debug Static MultiThread
_DEBUG and _MT
Debug Dynamic Link (DLL)
_DEBUG, _MT, and _DLL
&&& 其中以小写“d”结尾的选项表示的DEBUG版本的,没有“d”的为RELEASE版本。大型项目中必须要求所有组件和第三方库的运行时库是统一的,否则将会出现井喷。
&&& 单线程运行时库选项/ML和/MLd在VS2003以后就被废了。
&&& /MT和/MTd表示采用多线程CRT库的静态lib版本。该选项会在编译时将运行时库以静态lib的形式完全嵌入。该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的二进制代码因链入庞大的运行时库实现而变得非常臃肿。当某项目以静态链接库的形式嵌入到多个项目,则可能造成运行时库的内存管理有多份,最终将导致致命的“Invalid
Address specified to RtlValidateHeap”问题。另外托管C++和中不再支持/MT和/MTd选项。
&&& /MD和/MDd表示采用多线程CRT库的动态dll版本,会使应用程序使用运行时库特定版本的多线程DLL。链接时将按照传统VC链接dll的方式将运行时库MSVCRxx.DLL的导入库MSVCRT.lib链接,在运行时要求安装了相应版本的VC运行时库可再发行组件包(当然把这些运行时库dll放在应用程序目录下也是可以的)。
因/MD和/MDd方式不会将运行时库链接到可执行文件内部,可有效减少可执行文件尺寸。当多项目以MD方式运作时,其内部会采用同一个堆,内存管理将被简化,问题也能得到缓解。
&&& 结论:/MD和/MDd将是潮流所趋,/ML和/MLd方式请及时放弃,/MT和/MTd在非必要时最好也不要采用了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1227409次
积分:18971
积分:18971
排名:第461名
原创:688篇
评论:223条
文章:20篇
阅读:16202
文章:13篇
阅读:4984
文章:18篇
阅读:54512
阅读:25923
文章:22篇
阅读:34098
文章:18篇
阅读:10113
文章:22篇
阅读:53136
文章:67篇
阅读:132664
文章:15篇
阅读:34661
文章:72篇
阅读:177815
文章:147篇
阅读:295274
文章:83篇
阅读:118599
文章:123篇
阅读:151951
(10)(14)(6)(37)(26)(13)(6)(8)(14)(12)(18)(19)(18)(11)(9)(23)(19)(12)(5)(8)(6)(22)(21)(41)(39)(49)(49)(72)(11)(20)(7)(4)(8)(15)(11)(2)(1)(3)(7)(15)解决microsoft visual c++ 6.0在win8中不兼容_文档下载
亿万文档 免费下载
当前位置: &
& 解决microsoft visual c++ 6.0在win8中不兼容
解决microsoft visual c++ 6.0在win8中不兼容
在安装目录中依次点击Common\MSDev98\Bin,最后在Bin 目录中找到名字为MSDEV.EXE 的文件,重命名为任意文件名(如MSDEV3.EXE )后确认。
选中刚修改的文件,单击鼠标右键,在弹出菜单中选择属性出现如第一幅图的画面,将里面的选项修改成如第二幅图的样子,然后点击应用,再点击确认。此时再打开,就可正常进入了。
Word文档免费下载: (下载1-3页,共3页)
Microsoft_Visual_C++6.0使用方法_工学_高等教育_...8 [Tools]工具菜单 [Tools]菜单中是Visual C++附带...在弹出窗口上选择标签Project,选中Win32 Console ......Microsoft Visual C++ Runtime Library 错误解决办法今天安装软件时,出现“Microsoft...症状 在 Microsoft Windows XP 中运行自定义 Microsoft Visual C++ 6.0 程序时,......一、先来解决 VC++6.0 在 64 位 Win7 下不能安装的问题: 在 Windows7 下安装或者使用 Visual C++ 6.0 要注意三大点。 1. 在安装或者使用 Visual C++ 6.......win8下安装VC++6.0的方法_计算机软件及应用_IT/计算机_专业资料。win8下安装 VC++6.0的方法win8 下安装 Microsoft Visual C++(vc6.0) 下载 Microsoft Visual C......(15.52 KB) filetool_未编译.zip (37.7 KB) 解决 VC++6.0 在 64 位 Win7 下不能安装的问题: 在 Windows7 下安装或者使用 Visual C++ 6.0 要注意三......“Win7 下 Visual C++ 6.0 不兼 容问题” 之类...打开文件报错导致其崩溃的解决办法 根据我之前写的...\Program Files\Microsoft Visual Studio\Common\MSDev......接下来我就介绍下如何快 速安装 Microsoft Visual C++6.0 工具/原料 ? 可运行...8. 安装 Visual C++ 6.0 中文企业版。 9. 则又可能出现兼容性问题,照样继续......Microsoft_Visual_C++_Runtime_Library错误解决办法_计算机软件及应用_IT/计算机_...症状 在 Microsoft Windows XP 中运行自定义 Microsoft Visual C++ 6.0 程序时,......Microsoft_Visual_C++6.0详细使用教程_计算机软件及...8 [Tools]工具菜单 [Tools]菜单中是Visual C++附带...在弹出窗口上选择标签Project,选中Win32 Console ......Microsoft_Visual_C++6.0介绍及使用_计算机软件及应用...但已足以解决并支持本课程中涉及到的所有编程内容与...下”的“8”字型图标,且标有“Microsoft Visual ......如何用命令行(CMD)编译运行C/C++程序
我的图书馆
如何用命令行(CMD)编译运行C/C++程序
IDE(集成开发环境)提高了软件开发的效率
但是,要想成为一名非常专业的程序员,不懂手动编译程序是不太合适的
羡慕人家只需要通过记事本就能写程序么?
总之,当初我觉得那些人真的很牛,俗称“骨灰级别的程序员”
我们知道,一般的C/C++程序开发经历三个过程:
源代码的编辑——编译生成.obj文件——链接生成.exe文件
这是铁的规律,就算是用VC等集成环境,也必须经历这三个步骤。
只不过,IDE提供的图形化用户界面更加方便而已。但本质上是不会变的
最近电脑重装了下系统,于是我又重新把开发环境弄了下。每一步我都截图了,希望这次可以让想学习的人看明白。
以下所有步骤,都是根据我自己的PC情况来进行的。如果和你的PC有出入,请自己参照修改。
打开CMD,此时默认的所在路径一般是在C盘,如图
此时,我们不能访问到VC自带的编译器cl.exe。
我把VC安装在D盘下,完全路径为:D:\Program Files\Microsoft Visual Studio
编译器cl.exe在路径D:\Program Files\Microsoft Visual Studio\VC98\Bin
编译程序出了需要编译器外,还需要提供系统库文件.lib,系统头文件。
库文件在目录D:\Program Files\Microsoft Visual Studio\VC98\Lib
头文件在D:\Program Files\Microsoft Visual Studio\VC98\Include
现在你需要编写一个批处理文件.bat
[plain] PATH&=&&D:\Program&Files\Microsoft&Visual&Studio\VC98\Bin&&INCLUDE&=&D:\Program&Files\Microsoft&Visual&Studio\VC98\Include&&LIB&=&D:\Program&Files\Microsoft&Visual&Studio\VC98\Lib&&
保存为path.bat
然后运行该文件,会提示你错误,缺少文件
你可能并不知道这个文件是什么,也不知道这个文件被放在什么目录下。
此时利用下windows的文件搜索功能,我是在D盘中查找的(因为VC安装在D盘中),搜索结果如下
路径是D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
于是,我们需要在上述的.bat文件中,写入相应的信息,告诉系统这个.dll文件在什么地方。
但是上述.bat文件中,有三个环境变量,究竟放在哪个里呢?
仔细看这个.dll文件的存放位置,被放在bin下,而bin下的文件一般都是通过PATH环境变量来寻找的。
于是修改过后的.bat文件如下
[plain] PATH&=&&D:\Program&Files\Microsoft&Visual&Studio\VC98\BD:\Program&Files\Microsoft&Visual&Studio\Common\MSDev98\Bin&&INCLUDE&=&D:\Program&Files\Microsoft&Visual&Studio\VC98\Include&&LIB&=&D:\Program&Files\Microsoft&Visual&Studio\VC98\Lib&&
此时,再次执行.bat文件,便在电脑中成功声明了三个环境变量。
也可以通过手动声明这三个环境变量。
环境变量声明号后看,在CMD上运行cl命令,就会出现如下的提示,表明开发环境搭建成功。
编写一个简单的HelloWorld程序,存放在D:\盘下。
将CMD切换到D盘(在CMD中输入D:),接着输入命令cl HelloWorld.c,便可以生产目标文件HelloWorld.exe
到D盘下,你就会发现目标文件已经生成。
在CMD中输入命令HelloWorld,便可以执行程序
如果你还有什么疑问,可以留言,我尽快回答。
TA的最新馆藏[转]&[转]&
喜欢该文的人也喜欢}

我要回帖

更多关于 cmd命令进入d盘文件夹 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信