我曾在一個項目中使用過g ++來編譯以.c結尾的文件中的C代碼。原因是我被告知g ++有更好的警告信息。CMake可以使用g ++編譯C文件嗎?
我正在切換此項目的構建過程以使用CMake。我發現最初CMake想使用gcc編譯C文件。由於諸如在使用時聲明變量之類的事情而失敗。所以我嘗試使用g ++編譯C文件,使用CMakeLists.txt文件中的設置
set(CMAKE_C_COMPILER_INIT g++)
。但是,這將導致錯誤消息:
#error "The CMAKE_C_COMPILER is set to a C++ compiler"
我一直在重命名我的.c文件到.CPP來解決這個問題,因爲這似乎是最簡單的辦法,我把事情的工作,也許是最好的辦法太。但我想知道是否可以強制CMake使用g ++來編譯C文件。
「原因是我被告知g ++有更好的警告信息。 - 你能證實嗎?我會說這是非常可疑的,因爲(據我所知)這兩個只是調用具有不同參數的相同編譯器(語言,包含路徑,鏈接到的標準庫等)的驅動程序。除此之外,g ++不是C編譯器,所以你最終編寫非常差的C++。 – delnan
如果你正在編寫C語言,那麼使用C編譯器進行編譯。 C和C++不是一回事。 – Kusalananda
你說'_This失敗,因爲像使用time_'聲明變量的東西';這聽起來像你在C89模式下使用GCC,而不是C99模式。嘗試添加'-std = c99'到C編譯器 - 不知何故。 –