在编译bochs时使用的配置包含--enable-debugger时,make时报错:
gtk_enh_dbg_osdep.cc:20:21: 错误:gtk/gtk.h:没有那个文件或目录
反复确认各种软件包都已经安装并且存在。
查阅资料,需要在编译上加上参数:`pkg-config --libs --cflags gtk+-2.0`,例如编译main.c命令如下:
gcc main.c -o main `pkg-config --libs --cflags gtk+-2.0`
看make文件也不知道如何把以上参数加入到make过程中。
在看make时的输出日志:
cd gui && \
make libgui.a
make[1]: Entering directory `/home/xxx/sourcecode/bochs-2.6.2/gui'
g++ -c -I.. -I./.. -I../iodev -I./../iodev -I../instrument/stubs -I./../instrument/stubs -g -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES gtk_enh_dbg_osdep.cc -o gtk_enh_dbg_osdep.o
gtk_enh_dbg_osdep.cc:20:21: 错误:gtk/gtk.h:没有那个文件或目录
这个操作是进入到gui目录下,然后再进行编译。想到:在生成一个库后,如果源文件没有修改,在make时是不会重新编译的。于是想到一个折中方案:在命令后进入到gui目录,手动输入g++那行命令,在后面添加上需要的参数,如下:
g++ -c -I.. -I./.. -I../iodev -I./../iodev -I../instrument/stubs -I./../instrument/stubs -g -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES gtk_enh_dbg_osdep.cc -o gtk_enh_dbg_osdep.o `pkg-config --libs --cflags gtk+-2.0`
终于,不再报错。
然后,再重新跑make命令,因为libgui.a已经编译成功,并且其对应的源文件没有修改,make是不会重新编译的。接着,就可以跑make install 命令进行安装了。