I installed the Mingw32 base to get access to the gcc command (Added also /bin folder to PATH).
Moreover I installed Eclipse CDT Mars, created a C project and selected the MingW32 toolchain.
Now if I try to compile a simple program written in main.c, Eclipse tells me it couldn't find g++.
I know Eclipse can't find g++ because I only installed the MingW32 base, so gcc is the only one available.
But I also created only a C project not a C++ project.
So why eclipse try to compile with g++ not gcc?
How I can change this?
Related
I know there is binary released for Windows, I just want to try to compile it myself.
I got CMake, mingw32-make, gcc, gfortran and so on properly installed. (Using MinGW)
I tried
cd lapack
mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make
Then I got the static library liblapack.a and libblas.a for Fortran, but no liblapacke.a (the C interface of lapack).
Is there a easy solution?
LAPACKE is a collection of headers, there is nothing to be build. Link your program with the libraries you got (liblapack and libblas).
I'm trying to compile the C program tsschecker for Windows(on my Mac). I installed mingw-w64 with brew install mingw-w64, but I'm not sure how to use it to compile the program for Windows.
The Github repo for tsschecker includes instructions to compile for macOS and Linux(using make), but not Windows(but it includes Windows in the compatibility list).
I have access to a Windows machine if needed.
How can I compile tsschecker for Windows?
I am using Eclipse CDT and MinGW to do C development on Windows 8.1.
I have unpacked company internal MinGW package and just copied it to c:\MinGW, so it was not installer. I also added c:\MinGW\bin to path.
When I run Eclipse CDT, it does detect MinGW toolchain. However, after I set up a C project and tell it to use MinGW toolchain, and build it, I see in the console output the C compiler used is gcc, and I would like to use mingw32-g++.exe.
How do I define this in Eclipse CDT?
I checked project Properties\C C++ Build\Tool Chain Editor\ and under used tools I see the following:
GCC Assembler
GCC Archiver
GCC C++ Compiler
GCC C Compiler
MinGW C Linker
MinGW C++ Linker
The compiler is defined under project properties \C C++ Build\Settings\Tool Settings. Here one should select GCC Compiler and specify mingw32-g++ or just g++, or whichever compiler is desired.
I can't get Code Blocks IDE to compile the hello world C program it creates when you create a new C project. I've installed MinGW and it was recognised by the IDE. But when I try to build I get the following output:
-------------- Build: Debug in TestC3 (compiler: GNU GCC Compiler)---------------
mingw32-gcc.exe -Wall -g -c
C:\Users\jody\codeblocks\testc3\TestC3\main.c -o obj\Debug\main.o
mingw32-g++.exe -o bin\Debug\TestC3.exe obj\Debug\main.o Execution
of 'mingw32-g++.exe -o bin\Debug\TestC3.exe obj\Debug\main.o' in
'C:\Users\jody\codeblocks\testc3\TestC3' failed.
Why is it trying to run mingw32-g++.exe as well as mingw32-gcc.exe? (And if it shouldn't be doing this, how can I configure it not to?)
The mingw32-gcc.exe step is the compile step. The mingw32-g++.exe is the link step. This
is the correct sequence and will work if your mingw32 installation is "normal" and correct - where "normal" means
you have installed the C++ as well as the C tools.
The link step is failing for you because mingw32-g++.exe cannot be executed, most likely because
it does not exist on your PATH. Try running mingw32-g++.exe at the command prompt to check.
Look in the directory where mingw32-gcc.exe resides to see if mingw32-g++.exe is also there.
If your mingw32 installation has got broken somehow I suggest you uninstall and reinstall.
If you have intentionally installed only the C tools then that will explain what you are
seeing, and it is easily fixed:
Both mingw32-gcc.exe and mingw32-g++.exe are just tool driver programs. When invoked
with compilation options for .c files, mingw32-gcc.exe invokes the C compiler. When invoked
with compilation options for .cpp|cxx|... files, mingw32-g++.exe invokes the C++ compiler. If
either of them is invoked with linkage options then it invokes the linker.
Codeblocks by default configures mingw32-g++.exe to invoke the linker because it will do equally
well for C projects, C++ projects and C/C++ projects, and it assumes you have the full C/C++ toolchain.
If you have not installed C++ tools and only want to build C, then you can use mingw32-gcc.exe
to invoke both the C compiler and the linker. To configure this in the CodeBlocks IDE:
Navigate Settings -> Compiler
Ensure that the Selected Compiler is GNU GCC
Tab to Toolchain executables
Change Linker for dynamic libs from mingw32-g++.exe to mingw32-gcc.exe
OK out of Settings and rebuild your project.
Firstly uninstall the codeblocks if you can't get something right. Move to codeblocks official site to download its minw.exe version so that you have a proper compiler for all of your C programs.
After installing go to Setting>Compiler>GNU GCC compiler.
Move to Toolchain Executables>.
Now set Compilers Installation Directory. Most probably it's C:\Program Files\CodeBlocks\MinGW\bin. Now you have to select and locate your C compiler as it is in the above mentioned directory.
After that rebulid and run your program.
It may occur because compiler installation directory path is wrong.to fix it
settings -> compiler -> toolchain executables. now set compiler directory to compiler folder. it must be in CodeBlocks folder if you downloaded CodeBlocks compiler integrated version(ex: C:\Program Files\CodeBlocks\MinGW). else you need browse to location where compiler is installed
if you can't find compiler then uninstall codeblocks and download again . but this time make sure you downloaded one which has "mingw" in name for windows.
I am using Eclipse Kepler and running it under Win7 64-Bit. As compiler I use the gcc (4.8.1) from MinGW. Now I have the following problem:
//edit: Reformulated question to make it more clear
I have a project containing of one source-file with C-Code: main.c
This file can be compiled over 2 ways:
Start the compiler over the command-line: gcc -o main.exe main.c
Start the compiler over Eclipse by starting the normal build-routine (which also calls the gcc)
Now for some reason I want to add some C++-Code, but I still want to compile it with the gcc.
The gcc itself decides how to compile over the file extension - This means, if main.c contains C++-Code and I call gcc -o main.exe main.c it won't work. To make the compiler realize it's C++ I have to change the file-extension to somthing like .C or .cpp and then it will work.
Now back to Eclipse:
When I change my Sourcefile to main.C Eclipse interprets it as C++ File, meaning it changes the Code-Highlighting. When I now start a build process over Eclipse it just tells me
Info: Nothing to build for PROJECT
This means there is not even a call to the gcc-compiler. My guess is, that Eclipse somehow doesn't want to call the gcc, because the source-file is marked as C++-File.
//edit2: Just tried - when I have a C++-Projekt Eclipse just ignores the *.C or the *.cpp-files. I guess I have to add them manually, so they're built too ... but where?
The g++ is the compiler to compile C++ codes.
Change you compiler in you eclipse project.