首页
社区
课程
招聘
[求助]如何编译UPX3.03的代码?
发表于: 2009-4-1 12:28 13834

[求助]如何编译UPX3.03的代码?

2009-4-1 12:28
13834
我想在Win系统下编译 UPX的代码 地址如下:http://upx.sourceforge.net/download/upx-3.03-src.tar.bz2
但是看他的MakeFile 提示 "UPX Makefile - needs GNU make 3.80 or better
"
我找到了 GNU 3.81 版本For win 的版本
来到 GnuWin32\bin 目录,用make 编译 UPX源代码(已经把UPX的代码copy到bin目录了)
命令行运行 make.exe -C src
提示
H:\Program Files\GnuWin32\bin>make -C src
'sed' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
make: Entering directory `H:/Program Files/GnuWin32/bin/src'
makefile:59: /../src/stub/src/c/Makevars.lzma: No such file or directory
process_begin: CreateProcess(NULL, rm -f .depend, ...) failed.
make (e=2): 系统找不到指定的文件。
make: *** 没有规则可以创建目标“/../src/stub/src/c/Makevars.lzma”。 停止。
make: Leaving directory `H:/Program Files/GnuWin32/bin/src'

到官方的下载页面查看(http://upx.sourceforge.net/#download)
发现代码下载旁边还写着 source code (you also need UCL)
我就又下载了UCL ...但是不知道 这个UCL 怎么用...


希望 大大们 能帮忙看一下,
1.是不是 在Win系统下就没法编译 UPX 3.03 的代码了

2.如果非要在*unix 系统下搞的话,有谁能说一下 这个 UCL 应该怎么弄吗?

3.还有就是要怎么设置源码,才能编译出 在Win 系统下运行的 UPX.exe
(默认就是吗?我感觉好像能编译很多版本,所以应该需要设置一下吧?)

先谢了!~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
补充一下 GNU 3.81 版本For win 版本 的下载地址
http://gnuwin32.sourceforge.net/packages/make.htm
2009-4-1 17:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
问题还没有解决 UP一下!~
2009-4-3 14:01
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
Administrator@AVMan ~
$tar xvf upx-3.03-src.tar.bz2
Administrator@AVMan ~
$cd upx-3.03-src/src
Administrator@AVMan ~/upx-3.03-src/src
$make
Updating .depend
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o c_file.o -c c_file.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o c_init.o -c c_init.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o c_none.o -c c_none.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o c_screen.o -c c_screen.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o compress.o -c compress.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -Wno-cast-qual -Wno-shadow -Wno-error -o compress_lzma.o -c compress_lzma.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o compress_ucl.o -c compress_ucl.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o compress_zlib.o -c compress_zlib.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o except.o -c except.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o file.o -c file.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o filter.o -c filter.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o filteri.o -c filteri.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o help.o -c help.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o lefile.o -c lefile.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o linker.o -c linker.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o main.o -c main.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o mem.o -c mem.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o msg.o -c msg.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o mygetopt.o -c mygetopt.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_armpe.o -c p_armpe.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_com.o -c p_com.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_djgpp2.o -c p_djgpp2.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_elks.o -c p_elks.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_exe.o -c p_exe.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_lx_elf.o -c p_lx_elf.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_lx_exc.o -c p_lx_exc.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_lx_interp.o -c p_lx_interp.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_lx_sh.o -c p_lx_sh.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_mach.o -c p_mach.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_ps1.o -c p_ps1.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_sys.o -c p_sys.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_tmt.o -c p_tmt.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_tos.o -c p_tos.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_unix.o -c p_unix.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_vmlinx.o -c p_vmlinx.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_vmlinz.o -c p_vmlinz.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_w16ne.o -c p_w16ne.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_w32pe.o -c p_w32pe.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o p_wcle.o -c p_wcle.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o packer.o -c packer.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o packer_c.o -c packer_c.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o packer_f.o -c packer_f.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o packhead.o -c packhead.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o packmast.o -c packmast.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o pefile.o -c pefile.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o s_djgpp2.o -c s_djgpp2.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o s_object.o -c s_object.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o s_vcsa.o -c s_vcsa.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o s_win32.o -c s_win32.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o snprintf.o -c snprintf.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o stdcxx.o -c stdcxx.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o ui.o -c ui.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o util.o -c util.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o work.o -c work.cpp
g++ -O2 -Wall -W -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Werro
r -o upx.out c_file.o c_init.o c_none.o c_screen.o compress.o compress_lzma.o co
mpress_ucl.o compress_zlib.o except.o file.o filter.o filteri.o help.o lefile.o
linker.o main.o mem.o msg.o mygetopt.o p_armpe.o p_com.o p_djgpp2.o p_elks.o p_e
xe.o p_lx_elf.o p_lx_exc.o p_lx_interp.o p_lx_sh.o p_mach.o p_ps1.o p_sys.o p_tm
t.o p_tos.o p_unix.o p_vmlinx.o p_vmlinz.o p_w16ne.o p_w32pe.o p_wcle.o packer.o
packer_c.o packer_f.o packhead.o packmast.o pefile.o s_djgpp2.o s_object.o s_vc
sa.o s_win32.o snprintf.o stdcxx.o ui.o util.o work.o -lucl -lz

Administrator@AVMan ~/projects/upx-3.03-src/src




就解压源代码包.然后编译.2个命令.这么简单.浪费pediy.com的硬盘空间了

没有贴主你说的问题.

本回贴环境可以参考下面这贴子:http://bbs.pediy.com/showthread.php?t=85045
上传的附件:
2009-4-3 14:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上的,你是【在Win 下面】用GNU 3.81 For win 版本 编译的代码吗?
你的应该是在 Linux 之类的系统上编译的吧?我手边没有Linux系统,所以想问一下 Win系统下面如何编译...
虽然找到了 GNU 3.81 For win 版本 但是没能成功编译

对浪费了看雪的硬盘这个事情,我深表遗憾
2009-4-8 16:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看了4楼说的 配置环境...
有点了解了...
(不过这个算是曲线救国吧,其实和 用VM 装个*unix 然后编译代码是一样的! 和我的原意 有点出入)
不过也算是 学到了新知识 我是第一次听说 cygwin
感谢 4 楼的朋友!
2009-4-9 13:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
在cygwin 按照 4楼朋友发来的图片,
编译时提示 如下信息, 应该是 UCL 没有设置好的问题,我不知道他的UCL 如何放置

PS: 我这cygwin没有完全安装,只是选择了如下组件安装
我的系统式XP 只装了 cygwin,没有帖子上说的PSPSDK (这个有影响?)
  autoconf2.1
   automake1.10
    binutils
    gcc-core
    gcc4-core
    gdb
    pcre
    pcre-devel

Administrator@bf4c86680fa54e3 ~/upx-3.03-src/src
$ make
Updating .depend
In file included from c_file.cpp:29:
conf.h:173:27: ucl/uclconf.h: No such file or directory
conf.h:174:23: ucl/ucl.h: No such file or directory
conf.h:176:6: #error "please upgrade your UCL installation"
In file included from c_init.cpp:29:
conf.h:173:27: ucl/uclconf.h: No such file or directory
conf.h:174:23: ucl/ucl.h: No such file or directory
conf.h:176:6: #error "please upgrade your UCL installation"

*-*-*-*-*-*-*-*-
为节省 看雪的硬盘空间,省略N行类似信息!~
*-*-*-*-*-*-*-*-

In file included from work.cpp:29:
conf.h:173:27: ucl/uclconf.h: No such file or directory
conf.h:174:23: ucl/ucl.h: No such file or directory
conf.h:176:6: #error "please upgrade your UCL installation"
make: *** Deleting file `.depend'
make: *** No rule to make target `.depend', needed by `c_file.o'.  Stop.

Administrator@bf4c86680fa54e3 ~/upx-3.03-src/src
$
2009-4-11 16:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
上面的那位是在Vista下编译的吧?我也遇到这个问题,看看。。。
2009-5-19 22:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
哪位高手能具体讲一下这个UCL的配置吗??
2009-5-19 23:07
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
10
不过只是1.25版
上传的附件:
2009-5-20 18:25
0
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
直接vc6加ucl库就搞定了啊
2009-10-15 13:09
0
游客
登录 | 注册 方可回帖
返回
//