vs編譯器設置

因爲長期進行C++編碼,忽視了VS中文件編譯器的設置問題,這兩天要使用到之前下載的C編碼的工程,預想打算改爲C++編譯。遇到問題

總結如下。歸根結底還是對vs使用的不熟練。


1.在VS2008中 對於某個代碼文件,是以C++編譯器編譯,還是以C編譯器編譯
  與文件本身的後綴是.cpp 還是.c無關。主要按優先級依次取決於以下兩項配置
  一是工程本身的編譯器設置,見工程屬性 C/C++ 高級 編譯爲/TC或/TP。此時命令行中會出現/TC或/TP。
  二是選中某個特定的文件,打開其屬性頁,C/C++ 高級 編譯爲/TC或/TP。
 

2. C++編譯器的類型檢查比C編譯器嚴格。
   
  因爲C編譯器的類型檢查不嚴格,所以需多C編碼都沒有強制類型轉換。這樣就造成在用C++編譯器編譯這些代碼時
  經常出現的錯誤就是不能夠做類型轉換。

  解決的方法: 一是加上強制類型轉換, 二是改變單個文件的編譯配置,在工程中選中某個特定的文件,
  打開其屬性頁,C/C++ 高級 編譯爲/TC。,就是將這個文件的編譯方式改爲C。
  工程文件中就會多出FileConfiguration配置。具體如下:

<File
  RelativePath="../test.cpp"
  <FileConfiguration
 Name="Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"
       >
 <Tool
       Name="VCCLCompilerTool"
       CompileAs="1" //說明這個文件是以C編譯器編譯的。
 />
  </FileConfiguration>
</File>

這樣就會對單個文件以C方式編譯了,無需改動代碼。

發佈了5 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章