mathGl / MinGW undefined reference Netbeans IDE

2019-07-25 14:53发布

问题:

I'm trying to compile the below code :

#include <cstdlib>
#define HAVE_STRUCT_TIMESPEC
#include <mgl2/mgl.h>
using namespace std;

int main() {
   mglGraph gr;
   gr.FPlot("sin(pi*x)");
   gr.WriteFrame("test.png");
   return 0;
}

I'm using Netbeans IDE , Win 10 64x .... but keep getting this error :

Appreciate your help.

cd 'C:\Users\SAQERpc\Documents\NetBeansProjects\Plotting' C:\MinGW\msys\1.0\bin\make.exe -f Makefile CONF=Debug "/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf make.exe[1]: Entering directory /c/Users/SAQERpc/Documents/NetBeansProjects/Plotting' "/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/plotting.exe make.exe[2]: Entering directory/c/Users/SAQERpc/Documents/NetBeansProjects/Plotting' mkdir -p build/Debug/MinGW-Windows rm -f "build/Debug/MinGW-Windows/main.o.d" g++ -c -g -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.cpp mkdir -p dist/Debug/MinGW-Windows g++ -o dist/Debug/MinGW-Windows/plotting build/Debug/MinGW-Windows/main.o -lmgl build/Debug/MinGW-Windows/main.o: In function ZN8mglGraphC1Eiii': c:/mingw/include/mgl2/mgl.h:39: undefined reference to_imp___ZTV8mglGraph' c:/mingw/include/mgl2/mgl.h:42: undefined reference to _imp__mgl_create_graph_gl' c:/mingw/include/mgl2/mgl.h:48: undefined reference to_imp__mgl_create_graph' build/Debug/MinGW-Windows/main.o: In function ZN8mglGraphD1Ev': c:/mingw/include/mgl2/mgl.h:53: undefined reference to_imp___ZTV8mglGraph' c:/mingw/include/mgl2/mgl.h:53: undefined reference to _imp__mgl_use_graph' c:/mingw/include/mgl2/mgl.h:53: undefined reference to_imp__mgl_delete_graph' build/Debug/MinGW-Windows/main.o: In function ZN8mglGraph11SetFontSizeEd': c:/mingw/include/mgl2/mgl.h:122: undefined reference to_imp__mgl_set_font_size' build/Debug/MinGW-Windows/main.o: In function ZN8mglGraph10WriteFrameEPKcS1_': c:/mingw/include/mgl2/mgl.h:399: undefined reference to_imp__mgl_write_frame' build/Debug/MinGW-Windows/main.o: In function ZN8mglGraph5FPlotEPKcS1_S1_': c:/mingw/include/mgl2/mgl.h:1973: undefined reference to_imp__mgl_fplot' collect2.exe: error: ld returned 1 exit status make.exe[2]: * [dist/Debug/MinGW-Windows/plotting.exe] Error 1 make.exe[2]: Leaving directory /c/Users/SAQERpc/Documents/NetBeansProjects/Plotting' make.exe[1]: *** [.build-conf] Error 2 make.exe[1]: Leaving directory/c/Users/SAQERpc/Documents/NetBeansProjects/Plotting' make.exe": * [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 2s)

回答1:

You need to tell linker a library name, containing all the mathGL functions. In Netbeans 8.2 you can do that in the following way (I'm assuming your project is "C/C++ Application"):

  • Open your project properties
  • Click "Linker" in the left pane
  • Find "Libraries" line and click button with "..." on its right side
  • Click "Add option..." in the right pane
  • Select "Other Option" and type "-lmgl"
  • Click "Ok"
  • Rebuild your project

This final popup window, titled "Select Option", should look like this:



回答2:

try this too

Open your project properties
Click "Linker" in the left pane
Find "Libraries" line and click button with "..." on its right side
Click "Add option..." in the right pane
Select "Other Option" and type "-lodbc"
Click "Ok"
Rebuild your project