Author Topic: Trying to install graphics.h but getting "cannot find -lbgi" error  (Read 1514 times)

Offline imranif

  • Single posting newcomer
  • *
  • Posts: 3
I need to install graphics.h for doing graphics programming in C. however, even after following the steps mentioned here: https://stackoverflow.com/questions/20313534/how-to-use-graphics-h-in-codeblocks/20321173#20321173
I am not able to build and run programs because it shows
Code
||=== Build file: "no target" in "no project" (compiler: unknown) ===|
ld.exe||cannot find -lbgi|
||error: ld returned 1 exit status|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
How do i solve the issue of cannot finding lbgi? I already have added -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 in Other Linker options while assigned the directory C:\Program Files\CodeBlocks\MinGW\lib\libbgi.a for Link libraries.

This is the build message i am getting:
Code
gcc.exe   -c C:\Users\imran\OneDrive\Documents\Codeblocks\practice.c -o C:\Users\imran\OneDrive\Documents\Codeblocks\practice.o
gcc.exe  -o C:\Users\imran\OneDrive\Documents\Codeblocks\practice.exe C:\Users\imran\OneDrive\Documents\Codeblocks\practice.o  -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32  "C:\Program Files\CodeBlocks\MinGW\lib\libbgi.a"
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib\libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../lib/libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../lib\libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib\libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../..\libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../lib/libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../libbgi.a when searching for -lbgi
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lbgi
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
2 error(s), 0 warning(s) (0 minute(s), 1 second(s))

Will be grateful for some assistance

Offline stahta01

  • Lives here!
  • ****
  • Posts: 7730
    • My Best Post
Re: Trying to install graphics.h but getting "cannot find -lbgi" error
« Reply #1 on: February 07, 2025, 07:44:44 am »
Install an 64 bit library to use with your 64 bit toolchain or install an 32 toolchain to use with your 32 bit library.

Tim S.
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline imranif

  • Single posting newcomer
  • *
  • Posts: 3
Re: Trying to install graphics.h but getting "cannot find -lbgi" error
« Reply #2 on: February 07, 2025, 07:50:00 am »
Umm, i didn't understand what you meant. Could you explain a little bit? What 64 bit library should i install?

Offline nenin

  • Almost regular
  • **
  • Posts: 232
Re: Trying to install graphics.h but getting "cannot find -lbgi" error
« Reply #3 on: February 07, 2025, 07:51:44 am »
Install an 64 bit library to use with your 64 bit toolchain or install an 32 toolchain to use with your 32 bit library.

Tim S.
Very likely it not help, because "Library built with MingW 5.0.3 and GCC 3.4.5" (c)

Offline imranif

  • Single posting newcomer
  • *
  • Posts: 3
Re: Trying to install graphics.h but getting "cannot find -lbgi" error
« Reply #4 on: February 07, 2025, 07:54:01 am »
Is there any way to manually provide lbgi to solve the error? if not, what should i do now?

Offline nenin

  • Almost regular
  • **
  • Posts: 232
Re: Trying to install graphics.h but getting "cannot find -lbgi" error
« Reply #5 on: February 07, 2025, 08:01:39 am »
Umm, i didn't understand what you meant. Could you explain a little bit? What 64 bit library should i install?
This library is too old in all meanings.
If you want to use it you have to find sources and rebuild it with you version of the wingw compiler. It may not works, or requires some additional efforts, if  it was coded in low standard levels.
There is another version: https://openbgi.sourceforge.net/ - also very old.
Please note that actually it is from 80th.  https://en.wikipedia.org/wiki/Borland_Graphics_Interface 
It is too old for practical usage or for the learning.

PS. https://github.com/ahmedshakill/WinBGIm-64  - 64b version, should be more or less fresh.
« Last Edit: February 07, 2025, 08:04:51 am by nenin »

Offline Evan

  • Multiple posting newcomer
  • *
  • Posts: 27
Re: Trying to install graphics.h but getting "cannot find -lbgi" error
« Reply #6 on: February 07, 2025, 03:42:16 pm »
I'm not using Window anymore, but here is my notes for w7 and it still works fine for me:

graphics.h
Global compiler settings/Toolchain executables:

Compiler's installation directory:
C:\TDM-GCC-32

Program Files:
C compiler:        : g++.exe
C++ compiler       : g++.exe
Linker dynamic libs: g++.exe
linker static libs : ar.exe
Debugger           : GDC/CDB debugger: Default
Resource compiler  : windres.exe
Make program       : mingw32-make.exe

Compiler's installation directory:
C:\TDM-GCC-32

Linker settings:
//-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
C:\TDM-GCC-32\lib\libbgi.a
C:\TDM-GCC-32\lib\libgdi32.a
C:\TDM-GCC-32\lib\libcomdlg32.a
C:\TDM-GCC-32\lib\libuuid.a
C:\TDM-GCC-32\lib\liboleaut32.a
C:\TDM-GCC-32\lib\libole32.a

Debugger:
C:\TDM-GCC-32\gdb32\bin\gdb32.exe



#include <graphics.h>

int main() {
    initwindow(640, 480, "Graphics test", 0, 300);

    int x1 = 100, y1 = 200, x2 = 500, y2 = 400;

    moveto(x1, y1);
    lineto(x1, y2);
    lineto(x2, y2);
    lineto(x2, y1);
    lineto(x1, y1);

    getchar();

    return 0;
}