我正在尝试创建一个程序,它将运行cl.exe
(C / C ++编译器)并编译一个C ++程序。这是我的代码:
Module Module1
Sub Main()
Shell("C:\Program Files\Microsoft Visual Studio 10.0\VC\ _
bin\cl.exe /EHsc ""C:\myprogram.cpp"" ")
Console.WriteLine("Compilation Succeded")
Console.ReadLine()
End Sub
End Module
这不会编译.cpp文件。你对如何使这项工作有任何想法吗?
编辑:我在CMD中输入“C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ bin \ cl.exe”/ EHsc“C:\ myprogram.cpp”并且它没有'编译,但它引发了一个错误(此应用程序无法启动,因为找不到mspdb100.dll。)
编辑:我通过'VS命令提示符'执行我的程序并编译了我的程序(它显示它已编译),但是没有编译的exe和obj文件。
答案 0 :(得分:1)
您可以运行Program Files\Microsoft Visual Studio 10.0\VC\bin\cl.exe
。
此路径将根据安装的Visual Studio版本,操作系统的位数和系统驱动器而发生变化
您可以在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\InstallDir
中找到路径
在我的机器上,它是C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\
。
CL.exe
未编译您的程序,因为您的命令行不正确
特别是,您可能需要用双引号括起源路径,而不是单引号
要在字符串文字中使用双引号,请将它们加倍:".../EHsc ""Path.cpp"" "
答案 1 :(得分:1)
没关系,而不是使用cl.exe我现在正在使用MSBuild。好多了。
答案 2 :(得分:0)
单个刻度'
不能在命令行上用于包含空格的文件。请尝试使用双引号"
代替:
Shell("cl /EHsc ""a .cpp file"" ")
答案 3 :(得分:0)
您可能遇到cl.exe
路径中的空格问题。尝试:
Shell("""C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\cl.exe"" /EHsc ""myprogram.cpp"" ")
还要确保myprogram.cpp
位于程序运行的当前目录中(或在命令行中指定它的完整路径)。