#c #cmake #xc8 #customtool
#c #cmake #xc8 #customtool
Вопрос:
Windows 10, CMake 3.19.1
Я пытаюсь скомпилировать тестовый проект с помощью компилятора XC8, CMake и пользовательского набора инструментов (стороннего производителя). Ссылка: репозиторий цепочки инструментов
В кратком руководстве по цепочкам инструментов говорится, что нужно добавлять только две строки поверх моего CMakeLists.txt . Итак, у меня есть следующий CMakeLists.txt:
project(Test)
# set up the Microchip cross toolchain
set(CMAKE_TOOLCHAIN_FILE ./external/cmake-microchip/toolchain.cmake)
# set the default MCU model
set(MICROCHIP_MCU PIC18F97J60)
add_executable(main main.c)
Но иногда каждый раз, когда вывод генерации CMake начинается с:
-- Building for: Visual Studio 16 2019
-- The C compiler identification is MSVC 19.28.29333.0
-- The CXX compiler identification is MSVC 19.28.29333.0
..... more
И у меня нет никакого файла Makefile в выходной папке.
Также я пытаюсь запустить CMake с помощью -G «Unix makefiles». И был сгенерирован makefile с неправильным выводом и любыми следами использования пользовательской цепочки инструментов.
Вывод был:
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Detecting C compiler ABI info
При каждой попытке создания CMake я очищаю выходную папку.
Почему пользовательский набор инструментов не запускается?
Комментарии:
1. Вы можете попробовать две вещи. Один из них — изменить путь к файлу на абсолютный путь вместо относительного пути. Другой вариант — удалить эту строку и вместо этого передать ее в командной строке с
cmake -D CMAKE_TOOLCHAIN_FILE=/abs/path/to/toolchain/file .....
помощью . Посмотрите, работает ли любой из них.2. Не уверен, работает ли указание файла цепочки инструментов в
CMakeLists.txt
файле, но, конечно, слишком поздно, если вы делаете это после первойproject
команды, с которой столкнулись, поскольку в это время выбран компилятор и инициализированы все зависимые переменные…3. @fabian Я думаю, что вы на sth. Этот файл цепочки инструментов — абсолютный чертов беспорядок. Ради Бога, кто бы поместил
cmake_minimum_required
в файл цепочки инструментов ??!!