Недавно я возродил свой ноутбук Samsung Windows 2021 года и сделал полное обновление MSYS2. Теперь я пытаюсь заставить Cmake/C ++ работать над этим. Любопытная вещь: в простом примере «Hello World» все работает нормально. Он генерирует, компилируется и работает. Теперь я захожу к простой программе тестирования SDL2, и поколение становится полностью склоняющимся. Он думает, что компилятор, который отлично работает в предыдущем примере, сломлен. Как преследовать такую ошибку?cmake_minimum_required(VERSION 3.10.0)
project(Hello)
add_executable(Hello main.c)
< /code>
Вот что Cmake говорит об этом: < /p>
[main] Configuring project: CMake tests
[proc] Executing command: C:\msys64\mingw64\bin\cmake.exe "-DCMAKE_INSTALL_PREFIX=C:/Users/Ken/Desktop/prog24/aside/CMake tests/out/install/QuickStartPreset" -DCMAKE_C_COMPILER=C:/msys64/mingw64/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/msys64/mingw64/bin/g++.exe -DCMAKE_BUILD_TYPE=Debug "-SC:/Users/Ken/Desktop/prog24/aside/CMake tests" "-BC:/Users/Ken/Desktop/prog24/aside/CMake tests/out/build/QuickStartPreset"
[cmake] -- Building for: Ninja
[cmake] -- The C compiler identification is GNU 15.1.0
[cmake] -- The CXX compiler identification is GNU 15.1.0
[cmake] -- Detecting C compiler ABI info
[cmake] -- Detecting C compiler ABI info - done
[cmake] -- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe - skipped
[cmake] -- Detecting C compile features
[cmake] -- Detecting C compile features - done
[cmake] -- Detecting CXX compiler ABI info
[cmake] -- Detecting CXX compiler ABI info - done
[cmake] -- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe - skipped
[cmake] -- Detecting CXX compile features
[cmake] -- Detecting CXX compile features - done
[cmake] -- Configuring done (5.4s)
[cmake] -- Generating done (0.1s)
[cmake] -- Build files have been written to: C:/Users/Ken/Desktop/prog24/aside/CMake tests/out/build/QuickStartPreset
< /code>
Вот проблематичный cmakelists.txt из примера SDL2: < /p>
cmake_minimum_required(VERSION 3.28)
project(my-project)
set (TEST MinimalSDLtest.cpp)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
find_package(SDL2 REQUIRED COMPONENTS SDL2) # recommended in Readme
find_package(SDL2_mixer REQUIRED)
find_package(SDL2_ttf REQUIRED)
message( STATUS SDL2_INCLUDE_DIRS=${SDL2_INCLUDE_DIRS} )
message( STATUS SDL2_LIBRARIES=${SDL2_LIBRARIES} )
include_directories(${SDL2_INCLUDE_DIRS} .)
link_directories(${SDL2_LIBRARY_DIRS})
add_executable(TestProgram ${TEST})
target_compile_features(TestProgram PUBLIC cxx_std_11)
target_compile_options(TestProgram PRIVATE
-Wno-switch -Wno-deprecated-declarations -Wno-writable-strings)
target_link_libraries(TestProgram ${SDL2_LIBRARIES})
< /code>
И вот выход Cmake, с включенной отладкой: < /p>
[main] Configuring project: TestCase
[proc] Executing command: C:\msys64\mingw64\bin\cmake.exe -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=C:\msys64\mingw64\bin\gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=C:\msys64\mingw64\bin\g++.exe --no-warn-unused-cli -SC:/Users/Ken/Desktop/prog24/Drawbox/TestCase -Bc:/Users/Ken/Desktop/prog24/Drawbox/TestCase/build -G "Unix Makefiles" --debugger --debugger-pipe \\.\\pipe\\cmake-debugger-pipe\\f14ad3e5-39d7-4f64-b6ba-7c775bf824b7
[cmake] Not searching for unused variables given on the command line.
[cmake] Running with debugger on.
[cmake] Waiting for debugger client to connect...
[debugger] Connecting debugger on named pipe: "\\.\\pipe\\cmake-debugger-pipe\\f14ad3e5-39d7-4f64-b6ba-7c775bf824b7"
[cmake] Debugger client connected.
[cmake] -- The C compiler identification is GNU 15.1.0
[cmake] -- The CXX compiler identification is GNU 15.1.0
[cmake] -- Detecting C compiler ABI info
[cmake] -- Detecting C compiler ABI info - failed
[cmake] -- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe
[cmake] -- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe - broken
[cmake] CMake Error at C:/msys64/mingw64/share/cmake/Modules/CMakeTestCCompiler.cmake:67 (message):
[cmake] The C compiler
[cmake]
[cmake] "C:/msys64/mingw64/bin/gcc.exe"
[cmake]
[cmake] is not able to compile a simple test program.
[cmake]
[cmake] It fails with the following output:
[cmake]
[cmake] Change Dir: 'C:/Users/Ken/Desktop/prog24/Drawbox/TestCase/build/CMakeFiles/CMakeScratch/TryCompile-ofc3yj'
[cmake]
[cmake] Run Build Command(s): C:/msys64/mingw64/bin/cmake.exe -E env VERBOSE=1 C:/WinAVR-20100110/utils/bin/make.exe -f Makefile cmTC_2538a/fast
[cmake] C:/WinAVR-20100110/utils/bin/make.exe -f CMakeFiles/cmTC_2538a.dir/build.make CMakeFiles/cmTC_2538a.dir/build
[cmake] make.exe[1]: Entering directory `C:/Users/Ken/Desktop/prog24/Drawbox/TestCase/build/CMakeFiles/CMakeScratch/TryCompile-ofc3yj'
[cmake] /usr/bin/sh: -c: line 3: syntax error: unexpected end of file
[cmake] make.exe[1]: *** [CMakeFiles/cmTC_2538a.dir/testCCompiler.c.obj] Error 258
[cmake] make.exe[1]: Leaving directory `C:/Users/Ken/Desktop/prog24/Drawbox/TestCase/build/CMakeFiles/CMakeScratch/TryCompile-ofc3yj'
[cmake] make.exe: *** [cmTC_2538a/fast] Error 2
[cmake]
[cmake]
[cmake]
[cmake]
[cmake]
[cmake] CMake will not be able to correctly generate this project.
[cmake] Call Stack (most recent call first):
[cmake] CMakeLists.txt:5 (project)
< /code>
Sellsame Compiler. Это знакомая проблема? Есть предложения о том, как его продолжить?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... jects-only
Cmake "не в состоянии собрать простую тестовую программу" только для некоторых проектов ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Cmake "не в состоянии собрать простую тестовую программу" только для некоторых проектов
Anonymous » » в форуме C++ - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-