Sto tentando di compilare un esempio dalla documentazione di GLFW.Ho bisogno di aiuto per cercare di compilare un semplice esempio per GLFW con MinGW
mia struttura di cartelle per le librerie ei file di origine sono:
C: \ cpp \
glfw3.dll glfw3dll.a libglfw3.a test.cpp
includono \
GLFW \
glfw3.h glfw3native.h
#include <GLFW/glfw3.h>
int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
sto cercando di compilarlo con questo comando
c:\cpp>x86_64-w64-mingw32-g++ -lglfw3 -Iinclude test.cpp -o test
ma ottengo questo errore: uscite
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lglfw3 collect2.exe: error: ld returned 1 exit status
-v:
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32-g++
COLLECT_LTO_WRAPPER=c:/users/username/gcc/bin/../libexec/gcc/x86_64-w64-ming
w32/4.7.2/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-4.7.2-mingw/configure --host=x86_64-w64-mingw32 --build=
x86_64-unknown-linux-gnu --target=x86_64-w64-mingw32 --prefix=/home/gfortran/gcc
-home/binary/mingw32/native/x86_64/gcc/4.7.2 --with-sysroot=/home/gfortran/gcc-h
ome/binary/mingw32/cross/x86_64/gcc/4.7.2 --with-gcc --with-gnu-ld --with-gnu-as
--with-gmp=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/gmp --with-mpfr
=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/mpfr --with-mpc=/home/gfor
tran/gcc-home/binary/mingw32/native/x86_64/mpc --with-cloog=/home/gfortran/gcc-h
ome/binary/mingw32/native/x86_64/cloog --with-ppl=/home/gfortran/gcc-home/binary
/mingw32/native/x86_64/ppl --with-host-libstdcxx='-lstdc++ -lsupc++ -lm' --enabl
e-cloog-backend=ppl --enable-targets=i686-w64-mingw32,x86_64-w64-mingw32 --enabl
e-lto --enable-languages=c,c++,fortran --enable-libgomp --enable-threads=win32 -
-enable-static --enable-shared=lto-plugin --enable-plugins --enable-ld=yes --ena
ble-libquadmath --enable-libquadmath-support --disable-nls --disable-tls --disab
le-win32-registry
Thread model: win32
gcc version 4.7.2 (GCC)
COLLECT_GCC_OPTIONS='-I' 'include' '-o' 'test.exe' '-v' '-mtune=generic' '-march
=x86-64'
c:/users/username/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/cc1plus.e
xe -quiet -v -I include -iprefix c:\users\username\gcc\bin\../lib/gcc/x86_64
-w64-mingw32/4.7.2/ -U_REENTRANT test.cpp -quiet -dumpbase test.cpp -mtune=gener
ic -march=x86-64 -auxbase test -version -o C:\Users\username~1.ADM\AppData\Local\T
emp\ccfe85gV.s
GNU C++ (GCC) version 4.7.2 (x86_64-w64-mingw32)
compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.0.0,
MPC version 0.9
warning: GMP header version 5.0.5 differs from library version 5.0.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "c:/users/username/gcc/lib/gcc/../../lib/gcc/x8
6_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2"
ignoring duplicate directory "c:/users/username/gcc/lib/gcc/../../lib/gcc/x8
6_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2/x86_64-w64-mingw32"
ignoring duplicate directory "c:/users/username/gcc/lib/gcc/../../lib/gcc/x8
6_64-w64-mingw32/4.7.2/../../../../include/c++/4.7.2/backward"
ignoring duplicate directory "c:/users/username/gcc/lib/gcc/../../lib/gcc/x8
6_64-w64-mingw32/4.7.2/include"
ignoring nonexistent directory "/home/gfortran/gcc-home/binary/mingw32/cross/x86
_64/gcc/4.7.2/home/gfortran/gcc-home/binary/mingw32/native/x86_64/gcc/4.7.2/lib/
gcc/x86_64-w64-mingw32/4.7.2/../../../../include"
ignoring duplicate directory "c:/users/username/gcc/lib/gcc/../../lib/gcc/x8
6_64-w64-mingw32/4.7.2/include-fixed"
ignoring duplicate directory "c:/users/username/gcc/lib/gcc/../../lib/gcc/x8
6_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/include"
ignoring nonexistent directory "/home/gfortran/gcc-home/binary/mingw32/cross/x86
_64/gcc/4.7.2/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
include
c:\users\username\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../i
nclude/c++/4.7.2
c:\users\username\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../i
nclude/c++/4.7.2/x86_64-w64-mingw32
c:\users\username\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../i
nclude/c++/4.7.2/backward
c:\users\username\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/include
c:\users\username\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/include-fixed
c:\users\username\gcc\bin\../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x
86_64-w64-mingw32/include
End of search list.
GNU C++ (GCC) version 4.7.2 (x86_64-w64-mingw32)
compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.0.0,
MPC version 0.9
warning: GMP header version 5.0.5 differs from library version 5.0.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 0b3cd9e378660c38a8a80567400ff92f
COLLECT_GCC_OPTIONS='-I' 'include' '-o' 'test.exe' '-v' '-mtune=generic' '-march
=x86-64'
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x
86_64-w64-mingw32/bin/as.exe -v -I include -o C:\Users\username~1.ADM\AppData\Loca
l\Temp\ccQqklHV.o C:\Users\username~1.ADM\AppData\Local\Temp\ccfe85gV.s
GNU assembler version 2.22.52 (x86_64-w64-mingw32) using BFD version (GNU Binuti
ls) 2.22.52.20120723
COMPILER_PATH=c:/users/username/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.
7.2/;c:/users/username/gcc/bin/../libexec/gcc/;c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x86_64-w64-mingw32/bin/
EQ_LIBRARY_PATH=c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.
2/;c:/users/username/gcc/bin/../lib/gcc/;C:/Users/username/gcc/x86_64-w6
4-mingw32/lib/../lib/;c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw3
2/4.7.2/../../../../x86_64-w64-mingw32/lib/../lib/;c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib/;C:/Users/username/gcc/
x86_64-w64-mingw32/lib/;c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-ming
w32/4.7.2/../../../../x86_64-w64-mingw32/lib/;c:/users/username/gcc/bin/../l
ib/gcc/x86_64-w64-mingw32/4.7.2/../../../
COLLECT_GCC_OPTIONS='-I' 'include' '-o' 'test.exe' '-v' '-mtune=generic' '-march
=x86-64'
c:/users/username/gcc/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.2/collect2.
exe --sysroot=/home/gfortran/gcc-home/binary/mingw32/cross/x86_64/gcc/4.7.2 -m i
386pep -Bdynamic -o test.exe C:/Users/username/gcc/x86_64-w64-mingw32/lib/..
/lib/crt2.o C:/Users/username/gcc/x86_64-w64-mingw32/lib/../lib/crtbegin.o -
Lc:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2 -Lc:/users/
username/gcc/bin/../lib/gcc -LC:/Users/username/gcc/x86_64-w64-mingw32/lib
/../lib -Lc:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../.
./../../x86_64-w64-mingw32/lib/../lib -Lc:/users/username/gcc/bin/../lib/gcc
/x86_64-w64-mingw32/4.7.2/../../../../lib -LC:/Users/username/gcc/x86_64-w64
-mingw32/lib -Lc:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2
/../../../../x86_64-w64-mingw32/lib -Lc:/users/username/gcc/bin/../lib/gcc/x
86_64-w64-mingw32/4.7.2/../../.. C:\Users\username~1.ADM\AppData\Local\Temp\ccQqkl
HV.o -lglfw3 -lstdc++ -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -
lshell32 -luser32 -lkernel32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt C:/Us
ers/username/gcc/x86_64-w64-mingw32/lib/../lib/crtend.o
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib/libglfw3.a when searching f
or -lglfw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib/glfw3.dll when searching fo
r -lglfw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib\libglfw3.a when searching f
or -lglfw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../libglfw3.a when searching for -lgl
fw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../glfw3.dll when searching for -lglf
w3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../..\libglfw3.a when searching for -lgl
fw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib/libglfw3.a when searching f
or -lglfw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../lib/glfw3.dll when searching fo
r -lglfw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../libglfw3.a when searching for -lgl
fw3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: skipping incompatible c:/users/username/gcc/bin
/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../glfw3.dll when searching for -lglf
w3
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: cannot find -lglfw3
collect2.exe: error: ld returned 1 exit status
c: \ cpp> x86_64-w64-mingw32-g ++ -Iinclude test.cpp -o test. \ glfw3.dll
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `.\glfw3.dll' is in
compatible with i386:x86-64 output
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0xe): undefi
ned reference to `glfwInit'
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0x43): undef
ined reference to `glfwCreateWindow'
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0x53): undef
ined reference to `glfwTerminate'
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0x66): undef
ined reference to `glfwMakeContextCurrent'
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0x74): undef
ined reference to `glfwSwapBuffers'
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0x79): undef
ined reference to `glfwPollEvents'
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0x85): undef
ined reference to `glfwWindowShouldClose'
C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o:test.cpp:(.text+0x93): undef
ined reference to `glfwTerminate'
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: C:\Users\username~1.ADM\AppData\Local\Temp\cceVroaP.o
: bad reloc address 0x0 in section `.pdata'
c:/users/username/gcc/bin/../lib/gcc/x86_64-w64-mingw32/4.7.2/../../../../x8
6_64-w64-mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
Questo non funziona, lo stesso errore. – caboose0013
Puoi aggiungere '-v' per vedere cosa viene passato al linker? Aggiungilo alla tua domanda – greatwolf
@ caboose0013 Solo per escludere problemi evidenti, sei sicuro di 'glfw3.dll, glfw3dll.a, libglfw3.a' è in 'C: \ cpp' aka questo è ciò che' dir' conferma? E stai anche eseguendo il comando da 'C: \ cpp' come directory di lavoro corrente? – greatwolf