VS編寫C++程序,如何在一個工程裡面創建多個包含main函數的文件?

使用VS編寫C++程序,好像一個工程(還是項目,反正不管了,懂VS的都知道)只能有一個帶有main函數的cpp文件。多了就會報錯,好像還給我明確指出哪幾個文件中含有main函數,數量多於一個……什麼的,怎麼辦?我有的時候還要編寫點比賽的題目呢,總不能寫一個題目就新建一個工程吧?

這個應該怎麼辦呢?要設置什麼還是只能這樣了?或者能不能不創建工程就直接創建cpp文件,然後能夠成功編解碼?

我的windows8 x64, pro VS2010(好像跟這個沒什麼關係……)。


一個solution下面建多個project


每個題目寫一個函數,比如 qXXX,然後需要運行哪個,就從 main 里調用過去就好。

一個 project 對應一個程序可執行文件,一個程序文件中某個特定名字的函數只能有一個。所以你不能有多個 main。

  • 每個源碼文件叫做一個 compilation unit
  • 每個 compilation unit 會被編譯成一個 object file

  • 所有 object file 加 library 會被鏈接成一個executable file

第三步會把所有 object file 中的全局名稱和引用相互鏈接到一起,所以如果出現多個文件包括同樣叫做 main 的函數就會出錯。

這也是為什麼不建議初學者用 VC++ 這種 IDE 的問題,很多問題想當然就過去了之後,碰到問題根本無從解決。


一個解決方案下面可以建多個project,而一個project下只能有一個main,如果你想要在一個solution里建調試多個main 你只需要在解決方案資源管理器中再新建一個project就行了,ps:得將你新建的project設為啟動項目,右鍵你新建的project就能看見。這樣你調試時就會調試你設為啟動項目的project。


注釋掉不就好了


運行一個他人的opengl程序,裡面包含好多..cpp文件和頭文件,如何運行,求指點。


各建一個項目不就好了,要放在一起,你寫哪個的時候把別的文件擴展名改了吧,要不然誰知道你想編譯個啥出來


One project only one main. You can keep only one main, and then change other main functions to mainN of which N represent 1, 2, ..., etc. And then you can call any mainN you want in main function.


推薦閱讀:

c++的单例模式为什么不直接全部使用static,而是非要实例化一个对象?
「Bjarne 為增加 C++ 程序員身價有意增加 C++ 難度」是否屬實?
這種寫法用意何在?
string和char數組的區別是什麼以及map可否設置key為char數組?
为什么ASCII被摆放成现在这个样子?——我指的是各个ASCII字符的编号顺序

TAG:C | MicrosoftVisualStudio2010 |