这个 tarball 确实带有一个 Makefile,你可以看到 make install
会将 lgmask 安装到/usr/local/bin
cat Makefile
all: gmask umask
CC=gcc
CFLAGS=-O2 -fms-extensions
gmask: libimg/jpeg.o masks.o
$(CC) $(CFLAGS) lgmask.c -o lgmask -lX11 -ljpeg libimg/jpeg.o masks.o
umask: libimg/jpeg.o masks.o
$(CC) $(CFLAGS) unmask.c -o unmask -Wall -ljpeg masks.o libimg/jpeg.o
clean:
rm -f ?*~ libimg/*.o *.o
install: all
install lgmask /usr/local/bin
作者没有在 tarball 中包含依赖项 libimg/*...我四处搜索并在他的 svn 仓库中找到了它:
sudo apt-get subversion
svn checkout https://svn.code.sf.net/p/lgmask/code/trunk lgmask-code
现在,这段代码依赖于 libjpeg,让我们安装它
sudo apt-get install libjpeg62-dev
从哪里检查源代码:
cd libimg
gcc -c jpeg.c -ljpeg
cd ..
gcc -O2 -fms-extensions lgmask.c -o lgmask -L/usr/lib libimg/jpeg.o masks.o -ljpeg -lX11
你会收到一些警告,但它会为你编译 lgmask
~/tmp/lgmask-code$ ./lgmask
usage: lgmask <image name>
不幸的是,当我尝试使用多个 jpeg 运行它时,它会弹出一个空白图像...我尝试使用不同版本的 libjpeg 对其进行编译,但得到了相同的结果,让我知道它的效果如何。
我是一名优秀的程序员,十分优秀!