gpt4 book ai didi

linux - gcc 生成具有执行权限的共享对象

转载 作者:IT王子 更新时间:2023-10-29 01:11:09 24 4
gpt4 key购买 nike

我正在使用 gcc 在 Linux 上构建一个共享库。我没有收到任何编译或链接错误,但我的共享对象始终设置了执行位(尽管 readelf 指示它是一个共享对象)。我只是这样做:

> echo "int f() {return 1;}" > a.cpp
> gcc -c a.cpp
> gcc -shared -o liba.so a.o
> ls -l liba.so
-rwxr-xr-x 1 me me 6652 2011-06-09 17:05 liba.so

为什么共享对象会设置执行位?

最佳答案

因为通常你可以执行共享库。大多数共享库在执行时会崩溃,但您可以执行它们。

一些库定义了入口点(-Wl,-e,the_name_of_your_entry_point,标准 C 程序中的主要函数),然后您可以在不发生崩溃的情况下执行它们。

关于linux - gcc 生成具有执行权限的共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6299395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com