You might have come across source codes in C or C++ languages having #include<graphics.h> in the program. When you compile such codes in CodeBlocks IDE, it shows error saying “Cannot find graphics.h”. Why? This is because graphics.h runs only in Turbo C as it is inbuilt there, and is not available in the library folder of CodeBlocks.
So, how to include graphics.h in CodeBlocks? If you’ve previously tried downloading graphics.h header file and pasting it in the include folder of your compiler directory, but yet still it showed error, here’s a step-by-step solution to your problem. There are a few other settings CodeBlocks wants you to make to successfully run or execute C/C++ graphics programs.
To setup graphics.h in CodeBlocks, you’ll first have to set up winBGIm library (download graphics.h). WinBGIm is a graphics library ported to computer by Michael Main at the University of Colorado. It emulates graphics for the MingW (GCC port) compiler. Like the Turbo C++ IDE, the BGI, Borland Graphics Interface, is old, but it’s not yet outdated.
It is still used in many C/C++ programs in schools and colleges. You can find many alternatives to winBGI library, but this one is good for beginners in programming field. WinBGIm is the easiest 2D graphics library you can find!
Steps to include graphics.h in CodeBlocks:
Step 2: Extract the downloaded file. You’ll get three files:
Step 3: Copy and paste graphics.h and winbgim.h files into the include folder of your compiler directory. (If you have Code::Blocks installed in C drive of your computer, go through: Disk C >> Program Files >> CodeBlocks >> MinGW >> include. Paste these two files there.)
Step 4: Copy and paste libbgi.a to the lib folder of your compiler directory.
Step 5: Open Code::Blocks. Go to Settings >> Compiler >> Linker settings.
Step 6: In that window, click the Add button under the “Link libraries” part, and browse and select the libbgi.a file copied to the lib folder in step 4.
Step 7: Go to “Other linker options” on the right part and paste these commands:
[highlight color=”yellow”]-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32[/highlight]
Step 8: Make sure you got steps 6 and 7 right! Here’s a screenshot of previous two steps. Then, click Ok.
Step 9: If you now try compiling a graphics.h program code in C or C++, you’ll still get error. To solve it, open graphics.h file (pasted in include folder in step 3) with Notepad++. Go to line number 302, and replace that line with this line:
[highlight color=”yellow”]int left=0, int top=0, int right=INT_MAX, int bottom=INT_MAX,[/highlight]
Save the file. Done!
Now you can compile any C or C++ program containing graphics.h header file. If you compile C codes, you’ll still get an error saying: “fatal error: sstream : no such file directory”. For this issue, if your file extension is .c, change it to .cpp.
This post has now been thoroughly revised as people reported too many problems with the previous steps. The previous steps worked out for some, but didn’t for many. So, I’ve corrected all the errors. If you carefully follow the aforementioned steps, all graphics programs in C/C++ will be executed, provided there’s no error in the source code.
If you have any questions, bring them up from the comments section. Also, now that the post is revised and updated, leave a feedback in the comments if the aforementioned procedure to include graphics.h in CodeBlocks worked out for you.