これはForce CMake to use C++ compiler for C files with Visual Studioに似ていますが、全く同じではありません。そのCMakeファイルが失敗を引き起こすため、同じではありません。 BSDやOS XからSolarisやUnixに至るまで、ほぼすべての現代的なプラットフォームで作業しています。CMakeからのCファイルに対してCMakeにC++コンパイラを使用するように指示しますか?
私はcmakeのが行っている、無駄な検査を避けるために試してみました:ここ
project(cryptopp, CXX)
私はメイクファイルを生成しようとすると何が起こるかです:
$ cmake .
-- Check if the system is big endian
-- Searching 16 bit integer
-- Check size of unsigned short
CMake Error at /usr/share/cmake-2.8/Modules/CheckTypeSize.cmake:82 (try_compile):
Unknown extension ".c" for file
/home/jeffrey/cryptopp/CMakeFiles/CheckTypeSize/CMAKE_SIZEOF_UNSIGNED_SHORT.c
try_compile() works only for enabled languages. Currently these are:
CXX
See project() command to enable other languages.
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/CheckTypeSize.cmake:167 (__check_type_size_impl)
/usr/share/cmake-2.8/Modules/TestBigEndian.cmake:27 (CHECK_TYPE_SIZE)
CMakeLists.txt:49 (TEST_BIG_ENDIAN)
私達は私達の内の任意のCファイルを持っていません私たちはproject(cryptopp, CXX)
(私がcmake --help-command project
を正しく読んでいる場合)で安全でなければなりません。
引用された質問はプロジェクトファイルについて語りますが、CMakeファイルについては言及しません。
どのように私はCMakeに、それ自身のCMakeファイルを含むすべてのファイルに対してC++コンパイラを使用するよう指示しますか?
私はUbuntuのLTS 12上だし、それが提供されます。
$ cmake --version
cmake version 2.8.7
)、 'check_type_size()'マクロは* LANGUAGE *オプションをサポートしています。最新のバージョンでも 'test_big_endian()'はこのようなオプションをサポートしておらず、 'check_type_size'に対しても3.0より前のCMakeはこのオプションをサポートしていないというニュースがありません。しかし、これらは単なるcmakeモジュールです。あなたはそれらからコードを取り、必要に応じて調整することができます。 – Tsyvarev