我可以使用下面的g ++构建一个Linux可执行文件,没有任何问题:
g++ -I/usr/local/include -I/usr/local/include/FL/images -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT -o '2016_02_06a_1st_Window' '2016_02_06a_1st_Window.cxx' /usr/local/lib/libfltk.a -lXext -lXft -lfontconfig -lpthread -ldl -lm -lX11
但是当我尝试使用MinGW构建一个MS Windows可执行文件时,如下所示:
i586-mingw32msvc-g++ -I/usr/local/include -I/usr/local/include/FL/images -I/usr/include/freetype2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_THREAD_SAFE -D_REENTRANT 2016_02_06a_1st_Window.cxx -L/usr/local/lib -lfltk -lXext -lXft -lfontconfig -lpthread -ldl -lm -lX11 -o 2016_02_06a_1st_Window.exe
MinGW的错误是:
Compiling and linking..
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/bin/ld: cannot find -lXext
collect2: ld returned 1 exit status
我安装了各种类似的Xext库:
我的机器上有以下Xext库:
user@computer:~$ locate *Xext*
/usr/include/X11/extensions/Xext.h
/usr/lib/i386-linux-gnu/libXext.a
/usr/lib/i386-linux-gnu/libXext.so
/usr/lib/i386-linux-gnu/libXext.so.6
/usr/lib/i386-linux-gnu/libXext.so.6.4.0
我觉得g ++知道Xext库在哪里,但是MinGW不知道。任何想法都会有所帮助。
答案 0 :(得分:1)
你正在运行一个交叉编译器,主机是linux,目标是windows,所以当你链接你的目标二进制文件时,你应该有目标库。在你的情况下,你应该有libX for windows,你列出的是linux库,这就是你的交叉编译器无法找到要链接的库的原因。