繁体   English   中英

使用makefile,LD_PRELOAD到可执行文件

[英]Using makefile, LD_PRELOAD to executable file

我有两个文件“ abc.c”和“ run”

我想制作一个可执行的二进制文件,该文件执行以下两个指令

gcc -m32 -O2 -Wall -DRUNTIME -shared -fPIC -o a.so abc.c -ldl
LD_PRELOAD="a.so" ./run

我试图在Linux中使用makefile,但是失败了。

我可以使用makefile制作可执行二进制文件吗?

理想情况下,应使用makefile进行编译。 要使Shell命令自动化,可以使用Shell脚本。

也许,在您的情况下,您可以编写一个shell脚本,该脚本将首先调用make -f <SomeMakeFile>命令来编译和生成库( .so ),然后使用带有LD_PRELOAD指令的alog运行目标二进制LD_PRELOAD

我会这样:

all: a.so

test: a.so
        LD_PRELOAD="a.so" ./run

a.so: abc.c
        gcc -m32 -O2 -Wall -DRUNTIME -shared -fPIC -o a.so abc.c -ldl

clean:
        rm -f a.so

将其保存在名为Makefile 注意,缩进必须是一个选项卡-stackoverflow破坏了上面的输出。 现在有4个目标,仅调用make将生成共享库,显式调用make test将运行您的测试。 如果需要, make test将首先构建库。 我很想给予更多的灵活性,但这不是您要求的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM