Сегодня я обновил свой ноутбук до macOS 14.7.2 (Sonoma) с версии 14.5 или 6. Это привело к обновлению до Xcode версии 16.2 и ее инструментов командной строки.
Мой проект на C++ продолжает компилироваться и работать под управлением Xcode. Его также следует создавать с помощью CMake. Но это перестало работать после сегодняшнего обновления до Xcode 16.2. Не удается найти стандартные заголовки C++:
#include
получает:
fatal error: 'iostream' file not found
Я предполагаю, что это как-то связано с обновленным C++ и расположением его заголовочных файлов. Как мне снова заставить сборку CMake работать?
[ОБНОВЛЕНИЕ]
Файл CMakeLists.txt:< /p>
cmake_minimum_required(VERSION 3.24)
project(quux LANGUAGES C CXX)
# Specify compiler optimization level
add_compile_options(-O3)
# Need this to use "ranges" in c++20
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Find installed Open3D, which exports Open3D::Open3D
find_package(Open3D REQUIRED)
add_executable(quux)
target_sources(quux PRIVATE main.cpp)
target_link_libraries(quux PRIVATE Open3D::Open3D)
Я вызвал сборку с помощью:
cmake -DOpen3D_ROOT=${HOME}/open3d_install .. ; make -j 12
[ВТОРОЕ ОБНОВЛЕНИЕ]
Спасибо @Some программисту и @Alan Birtles за предложения. Извините, я забыл упомянуть, что первое, что я попробовал, — это удалить и перестроить каталог сборки CMake. Я попробовал второй раз, будьте уверены:
cwr@Craigs-M1-MacBook-Pro build % cd ..
cwr@Craigs-M1-MacBook-Pro quux % rm -rf build
cwr@Craigs-M1-MacBook-Pro quux % mkdir build
cwr@Craigs-M1-MacBook-Pro quux % cd build
cwr@Craigs-M1-MacBook-Pro build % cmake -DOpen3D_ROOT=${HOME}/open3d_install .. ; make -j 12
-- The C compiler identification is AppleClang 16.0.0.16000026
-- The CXX compiler identification is AppleClang 16.0.0.16000026
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at /Users/cwr/open3d_install/lib/cmake/Open3D/Open3DConfig.cmake:18 (cmake_policy):
The OLD behavior for policy CMP0072 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
CMakeLists.txt:45 (find_package)
-- Found Open3D: /Users/cwr/open3d_install/lib/cmake/Open3D/Open3DConfig.cmake (found version "0.18.0")
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/cwr/Documents/code/quux/build
[ 50%] Building CXX object CMakeFiles/quux.dir/main.cpp.o
In file included from /Users/cwr/Documents/code/quux/main.cpp:37:
In file included from /Users/cwr/Documents/code/quux/quux.h:12:
In file included from /Users/cwr/Documents/code/quux/Agent.h:13:
In file included from /Users/cwr/Documents/code/quux/Vec3.h:14:
/Users/cwr/Documents/code/quux/Utilities.h:18:10: fatal error: 'iostream' file not found
18 | #include
Подробнее здесь: https://stackoverflow.com/questions/793 ... rsion-16-2
Сборка CMake c++ перестала работать после версии Xcode 16.2 ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1737476483
Anonymous
Сегодня я обновил свой ноутбук до macOS 14.7.2 (Sonoma) с версии 14.5 или 6. Это привело к обновлению до [b]Xcode версии 16.2[/b] и ее инструментов командной строки.
Мой проект на C++ продолжает компилироваться и работать под управлением Xcode. Его также следует создавать с помощью CMake. Но это перестало работать после сегодняшнего обновления до Xcode 16.2. Не удается найти стандартные заголовки C++:
#include
получает:
fatal error: 'iostream' file not found
Я предполагаю, что это как-то связано с обновленным C++ и расположением его заголовочных файлов. Как мне снова заставить сборку CMake работать?
[b][ОБНОВЛЕНИЕ][/b]
Файл CMakeLists.txt:< /p>
cmake_minimum_required(VERSION 3.24)
project(quux LANGUAGES C CXX)
# Specify compiler optimization level
add_compile_options(-O3)
# Need this to use "ranges" in c++20
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Find installed Open3D, which exports Open3D::Open3D
find_package(Open3D REQUIRED)
add_executable(quux)
target_sources(quux PRIVATE main.cpp)
target_link_libraries(quux PRIVATE Open3D::Open3D)
Я вызвал сборку с помощью:
cmake -DOpen3D_ROOT=${HOME}/open3d_install .. ; make -j 12
[b][ВТОРОЕ ОБНОВЛЕНИЕ][/b]
Спасибо @Some программисту и @Alan Birtles за предложения. Извините, я забыл упомянуть, что первое, что я попробовал, — это удалить и перестроить каталог сборки CMake. Я попробовал второй раз, будьте уверены:
cwr@Craigs-M1-MacBook-Pro build % cd ..
cwr@Craigs-M1-MacBook-Pro quux % rm -rf build
cwr@Craigs-M1-MacBook-Pro quux % mkdir build
cwr@Craigs-M1-MacBook-Pro quux % cd build
cwr@Craigs-M1-MacBook-Pro build % cmake -DOpen3D_ROOT=${HOME}/open3d_install .. ; make -j 12
-- The C compiler identification is AppleClang 16.0.0.16000026
-- The CXX compiler identification is AppleClang 16.0.0.16000026
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at /Users/cwr/open3d_install/lib/cmake/Open3D/Open3DConfig.cmake:18 (cmake_policy):
The OLD behavior for policy CMP0072 will be removed from a future version
of CMake.
The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
CMakeLists.txt:45 (find_package)
-- Found Open3D: /Users/cwr/open3d_install/lib/cmake/Open3D/Open3DConfig.cmake (found version "0.18.0")
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/cwr/Documents/code/quux/build
[ 50%] Building CXX object CMakeFiles/quux.dir/main.cpp.o
In file included from /Users/cwr/Documents/code/quux/main.cpp:37:
In file included from /Users/cwr/Documents/code/quux/quux.h:12:
In file included from /Users/cwr/Documents/code/quux/Agent.h:13:
In file included from /Users/cwr/Documents/code/quux/Vec3.h:14:
/Users/cwr/Documents/code/quux/Utilities.h:18:10: fatal error: 'iostream' file not found
18 | #include
Подробнее здесь: [url]https://stackoverflow.com/questions/79373292/cmake-c-build-stopped-working-after-xcode-version-16-2[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия