Cpp-приложение Gradle, не обнаруживающее gcc в windows - PullRequest
1 голос
/ 12 апреля 2019

Я начинаю изучать c ++ и начал изучать gradle, чтобы использовать его как сборку. Я использую плагин cpp-application от Gradle для компиляции кода. Однако, когда я пытаюсь собрать его, gradlew говорит мне, что он не может обнаружить gcc, мой единственный установленный компилятор.

Я по большей части следовал руководству на веб-сайте Gradle (https://guides.gradle.org/building-cpp-executables/). Вот где я до сих пор придумал большую часть кода.

У меня правильно установлен gcc из ming-w32 в моем пути (я могу запустить его из командной строки и через make без проблем)

Я также использую установку Gradlew, которая была сделана с Gradle 5.2.1

Я, по большей части, использую точную настройку в руководстве по gradle.

apply plugin : 'cpp-application' 

application {
    baseName = "test" 
}

^ /$Project/build.gradle

Это вывод командной строки при запуске gradlew assemble

* What went wrong:
Execution failed for task ':compileDebugCpp'.
> No tool chain is available to build C++ for host operating system 'Windows 10' architecture 'x86-64':
    - Tool chain 'visualCpp' (Visual Studio):
        - Could not locate a Visual Studio installation, using the command line tool, Windows registry or system path.
    - Tool chain 'gcc' (GNU GCC):
        - Could not determine GCC metadata: failed to execute gcc.exe -m64 -dM -E -v -.
    - Tool chain 'clang' (Clang):
        - Could not find C++ compiler 'clang++' in system path.

Когда я запускаю команду, которую, по их словам, не удалось выполнить в той же командной строке (gcc.exe -m64 -dM -E -v -.)

Я получаю вывод из gcc без каких-либо ошибок, которые я вижу

Если вам интересно, что он выводит, вы можете найти его здесь

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

#include <iostream>  

int main(int argc, char** argv) {
  std::cout << "Hello World!!" << std::endl;
  return 0;
}

^ /$Project/src/main/cpp/main.cpp

1 Ответ

0 голосов
/ 15 апреля 2019

По умолчанию Gradle пытается найти цепочку инструментов, которая соответствует архитектуре вашей системы (x86_64), но у вас есть только 32-битный MinGW

Обходной путь - явно настроить 32-битную цельв вашем скрипте Gradle:

application {
  targetMachines = [ machines.windows.x86 ]
}
...