2012-03-22 105 views
5

有誰知道如何在Visual C++中使用命令行編譯器('cl'和'link')來構建項目嗎?我們在這裏更習慣於'make'和'gcc',但最近被移到了Visual Studio中。我想我們可以使用nmake,但我希望獲得一些關於使用'cl'和'link'的信息(就像編譯時沒有.sln文件一樣)。在Visual C++的命令行上編譯

東西沿着

  1. 行創建目標文件
  2. 鏈接對象文件來創建可執行

是我們想要的,但我似乎無法使它工作使用命令行參數。請幫助?

+1

你嘗試過什麼?整體概念與gcc相同,創建目標文件並鏈接它們。 – 2012-03-22 01:53:34

+0

你爲什麼想這樣做?如果您需要訪問特定於MSVS的庫,爲什麼不使用完整的MSVS(無論如何您都可以訪問它);否則就可以像在make/gcc世界中一樣使用gcc/g ++(通過cygwin或mingw)。 – Attila 2012-03-22 02:28:43

回答

1

編輯:對不起,沒有注意到'沒有.sln'部分。請忽略此答案。我將其留給其他可能實際需要的人,但這不是對原始問題的回答。

如果您只是想構建解決方案/項目文件(也就是說,大部分的構建設置已經在您的項目文件中定義),您可以使用devenv.exe爲您構建解決方案/項目 - 這可能是從命令行執行構建的最簡單方法。

例如:

devenv.exe myapp.sln /Rebuild "Release|x64"

清潔&構建在Release|x64配置myapp.sln溶液。

如果運行

devenv.exe /?

命令,它可以讓你的所有命令行選項。您可以使用devenv通過使用`/ project'開關在解決方案中僅構建特定項目。

如果您需要更多的靈活性(和你願意花很多時間寫合適的劇本),可以使用nmake通過命令行來構建,但我不知道那個好,所以我不能給出有用的建議。

+3

有問題說:「在編譯時沒有.sln文件」 這意味着OP想編譯一種類似於終端中的g ++命令。 – Aleks 2012-03-22 02:12:54

+0

@阿萊克斯謝謝,我沒有注意到。更新。 – xxbbcc 2012-03-22 02:14:41

3

你需要得到2個文件在您的位置:

  • vcvarsall.bat
  • cl.exe時

vcvarsall。蝙蝠是一個shell腳本,負責確定您正在運行的體系結構,並將幾個文件夾包含到您的路徑中,編譯器需要這些文件夾。我上的這個腳本位於下C:\ Program Files文件(x86)的\微軟的Visual Studio 11.0 \ VC

cl.exe時是編譯器本身並在我的電腦位於下C:\ Program Files文件(86) \微軟的Visual Studio 11.0 \ VC \ BIN

我只是宣佈一個環境變量VC_HOMEC:\ Program Files文件(x86)的\微軟的Visual Studio 11.0 \ VC並在路徑中包含%VC_HOME%; %VC_HOME%\ bin中;

現在,當你打開外殼,在第一次運行vcvarsall.bat,然後你可以說:CL MyProgramm.cpp