一、wsl连上X服务器
不需安装桌面只需装xterm测试一下:
sudo apt install xterm
在win10里装Xming安装时一路默认就可以了,最好还有Xming-fonts(要在同一目录),我安装的是Xming-6-9-0-31-setup.exe+Xming-fonts-7-5-0-47-setup.exe
启动Xming,便可以在wsl中执行xterm
DISPLAY=:0 xterm
为了方便,设置DISPLAY环境变量
在~/.bashrc 增加
export DISPLAY=:0
这样直接今后执行图形界面的程序都会连接到Xming。
二、安装一些图形库
Xlib/Xt/Motif等:
sudo apt install libxt-dev libmotif-dev libxext-dev libxaw7-dev libxmu-dev
opengl:
sudo apt-get install libgl1-mesa-dev freeglut3-dev libglu1-mesa-dev
gtk/gtk+开发
sudo apt install libgtk-3-dev libgtk2.0-dev
fltk 开发
sudo apt install libfltk1.3-dev
三、例子fltk 中使用opengl
准备需要的文件。 CubeView.cxx main.cxx Makefile.FLTK CubeView.h CubeViewUI.cxx CubeViewUI.h Makefile。除了 main.cxx文件其余的在/usr/share/doc/fltk1.3-doc/examples/目录下拷贝即可。
main.cxx
#include "CubeViewUI.h"
#include
int main(int argc, char **argv) {
// 定义类CubeViewUI的一个实例
CubeViewUI *cvui=new CubeViewUI;
// 设置FLTK窗口显示模式
Fl::visual(FL_DOUBLE|FL_INDEX);
cvui->show(argc,argv);
// 进入消息循环
return Fl::run();
}
还需要一些改动:
1:在CubeView.h注释掉#include ,改为 //#include
2:Makefile.FLTK
#
# Stuff every FLTK application might need
#
# If you take this for use in your own project, be sure to change
# the 'FLTKCONFIG' setting to point to where it's installed
# on your system. Common examples:
#
# FLTKCONFIG = /usr/local/bin/fltk-config
# FLTKCONFIG = /usr/local/src/fltk-1.3.x-svn/fltk-config
#
# Set .SILENT in your Makefile if you want 'quieter' builds.
FLTKCONFIG = /usr/bin/fltk-config
CXX = $(shell $(FLTKCONFIG) --cxx)
CXXFLAGS = $(shell $(FLTKCONFIG) --cxxflags) -Wall -I.
LINKFLTK = $(shell $(FLTKCONFIG) --ldstaticflags)
LINKFLTK_GL = $(shell $(FLTKCONFIG) --use-gl --ldstaticflags)
LINKFLTK_IMG = $(shell $(FLTKCONFIG) --use-images --ldstaticflags)
LINKFLTK_ALL = $(shell $(FLTKCONFIG) --use-images --use-gl --ldstaticflags)
.SUFFIXES: .C .cpp .cxx .h .fl .o
3:Makefile
include Makefile.FLTK
RM = rm -f
SHELL = /bin/bash
.SILENT:
#==============================================================
# This program's object code files
PRG = myFltkGl1
OBJS = main.o CubeView.o CubeViewUI.o
#==============================================================
# Executables
all: $(PRG)
# TO LINK
$(PRG): $(OBJS)
@echo "*** Linking $@..."
$(CXX) -o $@ $(OBJS) $(LINKFLTK_GL)
# clean everything
clean:
$(RM) $(PRG)
$(RM) *.o
$(RM) core
make后就产生myFltkGl1
运行截图: