Конан: в чем разница между указанием компилятора в env или в настройках ⇐ C++
-
Гость
Конан: в чем разница между указанием компилятора в env или в настройках
Это был мой профиль Конана (1.59):
[настройки] арка = x86_64 Arch_build=x86_64 build_type=Выпуск компилятор = лязг компилятор.libcxx=libstdc++11 компилятор.версия=14 ОС = Linux os_build=Линукс [параметры] [build_requires] [окр.] Это не сработало, потому что cmake обнаружил не clang, а /usr/bin/c++
-- Цепочка инструментов Конана: установка CMAKE_POSITION_INDEPENDENT_CODE=ON (options.fPIC) -- Цепочка инструментов Конана: установка BUILD_SHARED_LIBS = OFF -- Идентификация компилятора CXX: GNU 11.4.0. -- Обнаружение информации ABI компилятора CXX -- Обнаружение информации ABI компилятора CXX - не удалось -- Проверка работы компилятора CXX: /usr/bin/c++ -- Проверка работы компилятора CXX: /usr/bin/c++ - не работает Ошибка CMake в /usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake:62 (сообщение): Компилятор С++ "/usr/bin/С++" Затем я добавил параметры среды для среды clang, что привело к следующему:
[настройки] арка = x86_64 Arch_build=x86_64 build_type=Выпуск компилятор = лязг компилятор.libcxx=libstdc++11 компилятор.версия=14 ОС = Linux os_build=Линукс [параметры] [build_requires] [окр.] CC=/usr/bin/clang CXX=/usr/bin/clang++ И вуаля!
Но теперь я не понимаю, для чего на самом деле нужны настройки компилятора и compiler.version. Моя первоначальная мысль заключалась в том, что эти значения определяют то, что записывается в файл цепочки инструментов conan, который затем вызывается cmake. Однако, глядя на него, я вижу только указанные флаги компилятора, а не фактические пути компилятора CC и CXX. Итак, я ошибался в этом, и похоже, что conan связывает компилятор с cmake только через переменные среды. Если да, то для чего нужны настройки compiler и compiler.version? Как его использует Конан?
Это был мой профиль Конана (1.59):
[настройки] арка = x86_64 Arch_build=x86_64 build_type=Выпуск компилятор = лязг компилятор.libcxx=libstdc++11 компилятор.версия=14 ОС = Linux os_build=Линукс [параметры] [build_requires] [окр.] Это не сработало, потому что cmake обнаружил не clang, а /usr/bin/c++
-- Цепочка инструментов Конана: установка CMAKE_POSITION_INDEPENDENT_CODE=ON (options.fPIC) -- Цепочка инструментов Конана: установка BUILD_SHARED_LIBS = OFF -- Идентификация компилятора CXX: GNU 11.4.0. -- Обнаружение информации ABI компилятора CXX -- Обнаружение информации ABI компилятора CXX - не удалось -- Проверка работы компилятора CXX: /usr/bin/c++ -- Проверка работы компилятора CXX: /usr/bin/c++ - не работает Ошибка CMake в /usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake:62 (сообщение): Компилятор С++ "/usr/bin/С++" Затем я добавил параметры среды для среды clang, что привело к следующему:
[настройки] арка = x86_64 Arch_build=x86_64 build_type=Выпуск компилятор = лязг компилятор.libcxx=libstdc++11 компилятор.версия=14 ОС = Linux os_build=Линукс [параметры] [build_requires] [окр.] CC=/usr/bin/clang CXX=/usr/bin/clang++ И вуаля!
Но теперь я не понимаю, для чего на самом деле нужны настройки компилятора и compiler.version. Моя первоначальная мысль заключалась в том, что эти значения определяют то, что записывается в файл цепочки инструментов conan, который затем вызывается cmake. Однако, глядя на него, я вижу только указанные флаги компилятора, а не фактические пути компилятора CC и CXX. Итак, я ошибался в этом, и похоже, что conan связывает компилятор с cmake только через переменные среды. Если да, то для чего нужны настройки compiler и compiler.version? Как его использует Конан?
Мобильная версия