[英]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.