Я не смог завершить код C ++ в Visual Studio Code - PullRequest
0 голосов
/ 28 июня 2019

Я использую библиотеку "glut" и пытаюсь скомпилировать код компилятором gcc, но это дает нежелательный результат. Когда я пытаюсь построить команду (Ctrl + Shift + B) для кода Visual Studio, Терминал возвращает ниже сообщения об ошибках .

> Выполнение задачи: gcc -IC: \ MinGW \ include -IC: \ Users \ Ayata \ Documents \ Work \ freeglut-3.0.0 \ include -oc: \ Users \ Ayata \ Documents \ WorkReport \ MakeGameByUsingCpp \ main c : \ Users \ Ayata \ Documents \ WorkReport \ MakeGameByUsingCpp \ main.cpp <</p>

c: / mingw / bin /../ lib / gcc / mingw32 / 8.2.0 /../../../../ mingw32 / bin / ld.exe: C: \ Users \ Ayata \ AppData \ Local \ Temp \ cc0Hoyy5.o: main.cpp :(. Text + 0x1c): неопределенная ссылка на _imp____glutInitWithExit@12' c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\Ayata\AppData\Local\Temp\cc0Hoyy5.o:main.cpp:(.text+0x3f): undefined reference to _imp ____ glutCreateWindowWithExit @ 8 '

~ ~ * сокращайте 1009 *

c: / mingw / bin /../ lib / gcc / mingw32 / 8.2.0 /../../../../ mingw32 / bin / ld.exe: C: \ Users \ Ayata \ AppData \ Local \ Temp \ cc0Hoyy5.o: main.cpp :(. Text + 0x162): неопределенная ссылка на glClear@4' c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\Ayata\AppData\Local\Temp\cc0Hoyy5.o:main.cpp:(.text+0x16a): undefined reference to _imp__glutSwapBuffers @ 0 ' collect2.exe: ошибка: ld вернул 1 состояние выхода Терминальный процесс завершен с кодом выхода: 1

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

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

~ p.s. ~ Мне удалось скомпилировать простую программу "Hello World"! Это сработало хорошо!

↓ Мой код "main.cpp"

#include <GL/glut.h> //importing glut library
int WindowPositionX = 100;
int WindowPositionY = 100;
int WindowWidth = 512;
int WindowHeight = 512;
char WindowTitle[] = "世界の始まり";

void Initialize(void);
void Display(void);

int main(int argc, char *argv[]){
  glutInit(&argc, argv);
  glutInitWindowPosition(WindowPositionX, WindowPositionY);
  glutInitWindowSize(WindowWidth, WindowHeight);
  glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE);
  glutCreateWindow(WindowTitle);
  glutDisplayFunc(Display);
  Initialize();
  glutMainLoop();
  return 0;
}
void Initialize(void){
  glClearColor(1.0, 1.0, 1.0, 1.0);
  glEnable(GL_DEPTH_TEST);
}
void Display(void) {
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glutSwapBuffers();
}

Мой код "task.json". Я установил опцию «-I» для поиска файла заголовка по заданному пути (в этом случае он будет искать в «C: \ Users \ Ayata \ Documents \ Work \ freeglut-3.0.0 \ include»)

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build main",
            "type": "shell",
            "command": "gcc",
            "args": [
                "-I",
                "C:\\MinGW\\include",
                "-I",
                "C:\\Users\\Ayata\\Documents\\Work\\freeglut-3.0.0\\include",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}",
                "${file}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true,
            }
        },
    ]
}

~ Другая информация ~

ОС: Windows 10 (64-разрядная версия)

gcc версия: gcc (MinGW.org GCC-8.2.0-3) 8.2.0

Заголовочный файл

"glut.h" находится в "C: \ Users \ Ayata \ Documents \ Work \ freeglut-3.0.0 \ GL".

cpp файл "main.cpp" находится по адресу "C: \ Users \ Ayata \ Documents \ WorkReport \ MakeGameByUsingCpp \ main.cpp".

json-файл "task.json" находится по адресу "C: \ Users \ Ayata \ Documents \ WorkReport \ MakeGameByUsingCpp.vscode \ tasks.json".

↓ Изображение моего окружения

https://imgur.com/a/Z4w0Wt4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...