更新时间:2023-11-13 13:31:40
I've gone via this tutorial 5 or maybe more times and I found what was wrong.I was exacting commands from wrong directories and downloading wrong version of GTK+ 3 Windows binaries
.
我的mingw版本是mingw64,因此我需要下载win64
版本.
My version of mingw is mingw64 thus I needed to download win64
version.
并且我正在/opt/gtk3-win64中执行命令export PKG_CONFIG_PATH=/opt/gtk3-win64/lib/pkgconfig
,但是我需要通过test.c文件所在的目录来执行此命令.
and I was executing command export PKG_CONFIG_PATH=/opt/gtk3-win64/lib/pkgconfig
from /opt/gtk3-win64,but I needed to execute this command via directory in which my test.c file was.
我将为以后的读者简化本教程.
I'll make this tutorial easy for future readers.
通过命令安装mingw cross-compiler
sudo apt-get install mingw-w64
然后从此处下载GTK+ 3 Windows binaries
(此中的链接教程较旧,这是最新链接):- http://win32builder.gnome.org/
下载我错误的版本时,请下载适当的版本.不要犯与我相同的错误.
Then Download GTK+ 3 Windows binaries
from here(Link in this tutorial is old,here is latest link):- http://win32builder.gnome.org/
Download appropriate version as I was downloading wrong version.don't make the same mistake as mine.
通过命令
sudo mkdir /opt/gtkwin && sudo unzip <name of the zip file> -d /opt/gtkwin
然后转到您已解压缩zip文件的目录.在这种情况下,我已像cd /opt/gtkwin
一样在/opt/gtkwin/中解压缩并执行以下命令
then Go to directory in which you have extracted the zip file.In this case I have extracted in /opt/gtkwin/ like cd /opt/gtkwin
and execute the following command
find -name '*.pc' | while read pc; do sed -e "s@^prefix=.*@prefix=$PWD@" -i "$pc"; done
现在转到您要编译的.c文件所在的目录,然后执行此命令
Now go to you directory in which you have .c file which you which to compile.and execute this command
export PKG_CONFIG_PATH=/opt/gtkwin/lib/pkgconfig
现在通过
now compile the program by
x86_64-w64-mingw32-gcc test.c `pkg-config --cflags gtk+-3.0 --libs`
(用于64位)
和32位
i586-mingw32msvc-gcc test.c `pkg-config --cflags --libs gtk+-3.0`
另外,您应该访问该教程,因为我从那里学到了它:- http ://www.tarnyko.net/en/?q = node/45
Also you should visit this tutorial as I had learn this from there :- http://www.tarnyko.net/en/?q=node/45
这将创建不能在UNIX中运行的.exe
文件,因为该文件旨在在DOS上运行
this will create .exe
file which can't run in UNIX as it is targeted to run on DOS