对我甚至没有使用的函数的未定义引用

Undefined reference to functions im not even using?

本文关键字:函数 未定义 引用      更新时间:2023-10-16

所以我仍在努力让我的坏graphics.h库工作。我几乎要纠正所有奇怪的错误了。我把所有东西都安装正确了。我遇到了很多未定义错误的麻烦:

    -------------- Build: Debug in LEVEL EDITORRRR (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -fexceptions -g  -c "C:UsersMoustachespyDocumentsLEVEL EDITORRRRmain.cpp" -o objDebugmain.o
mingw32-g++.exe  -o "binDebugLEVEL EDITORRRR.exe" objDebugmain.o   "C:Program Files (x86)CodeBlocksMinGWliblibbgi.a"
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x133): undefined reference to `GetStockObject@4'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x28e): undefined reference to `GetStockObject@4'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x478): undefined reference to `GetStockObject@4'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x48e): undefined reference to `SelectObject@8'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x499): undefined reference to `DeleteObject@4'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x4a8): undefined reference to `GetStockObject@4'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x4be): undefined reference to `SelectObject@8'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x4c9): undefined reference to `DeleteObject@4'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x4ec): undefined reference to `SetTextColor@8'
C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o):winbgi.cxx:(.text+0x1875): undefined reference to `GetStockObject@4'
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: C:Program Files (x86)CodeBlocksMinGWliblibbgi.a(winbgi.o): bad reloc address 0x0 in section `.data'
C:/Program Files (x86)/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 11 second(s))
11 error(s), 0 warning(s) (0 minute(s), 11 second(s))

我该怎么办?谷歌不会帮我的。如果你还需要什么,告诉我,我会提供:D

我的代码:

#include <iostream>
#include <graphics.h>
using namespace std;
int main()
{
    cout << "Hello world!" << endl;
    initwindow(1000,1000);
    return 0;
}

您似乎没有链接到gdi32库,但您包含了头。

编辑:我不知道代码块是如何工作的。您的导师是否强迫您使用该编译器,因为您可以在上免费下载并使用Microsoft Visual Studio 2015https://www.visualstudio.com/downloads/download-visual-studio-vs它是一个更好的编译器,可以在调试信息中为您提供更多详细信息。除了无法访问您的控制台程序设置和非常稀疏的调试信息外,我唯一能说的就是确认您的入口点源文件中包含了Windows.h,如果您不受使用VS 2015编译器的限制,那么它是使用c++V14的最新Visual Studio,对用户更友好。祝您好运。。

实际上,您的程序是为windows gui 32编写的。您应该选择windows gui 32模板,而不是控制台应用程序。