Как указать VS2017 на заголовки по умолчанию (arm-none-eabi-) gcc при использовании cmake - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь создать проект / протестировать cmake с помощью arm-none-eabi-gcc в качестве моего компилятора с использованием VS2017 (и VS2019RC / preview).

У меня возникают трудности с указанием VS2017, где искатьдля заголовков gcc по умолчанию.

Какой правильный / самый простой способ добиться этого?

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Итак, у меня есть обходной путь, который, ну, работает.Но это определенно не долгосрочное решение.

Что я сделал, так это добавил, что GCC включает пути напрямую в директиву CMakeLists.txt target_include_directories, и это работает.Вот так:

target_include_directories(
    ${ELF}
    PRIVATE
        "source"
        "source/target/arm/stm32f1/CMSIS/Device/ST/STM32F1xx/Include"
        "${tools}\\bin\\../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/include/c++/7.3.1"
        "${tools}\\bin\\../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/include/c++/7.3.1/arm-none-eabi"
        "${tools}\\bin\\../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/include/c++/7.3.1/backward"
        "${tools}\\bin\\../lib/gcc/arm-none-eabi/7.3.1/include"
        "${tools}\\bin\\../lib/gcc/arm-none-eabi/7.3.1/include-fixed"
        "${tools}\\bin\\../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/include"
)

Но да, никто не хочет такого решения.Так что, если у кого-то есть идея получше?

0 голосов
/ 13 марта 2019

Я знаю, что могу включать их как обычные, но попытался найти параметры конфигурации и нашел ниже ссылку, как вставить его в переменную INCLUDE env.

https://devblogs.microsoft.com/cppblog/arm-gcc-cross-compilation-in-visual-studio/

Вы можете указать дополнительные каталоги включения, но учтите, что подкаталоги, если они есть, также должны быть явно объявлены в это время.

[code lang=”js”]
{
// The "environments" property is an array of key value pairs of the form
// { "EnvVar1": "Value1", "EnvVar2": "Value2" }
"environments": [
{
"INCLUDE": "${workspaceRoot}\\src\\includes"
}
],

{
  "configurations": [
    {
      "inheritEnvironments": [
        "gcc-arm"
      ],
      "name": "gccarm",
      "includePath": [
        "${env.INCLUDE}"
      ],
      "defines": [
      ]
    }
  ]
}
...