windows和linux下程序有几种使用动态库的方式

windows和linux下程序有几种使用动态库的方式,第1张

在linux上,你在ps中说的那种"将动态库作为一个参数传到程序里"的使用方式,是通过dlopen函数将.so加载到当前进程中,并且通过ld.so将.so"链接"进当前进程。这个"链接"过程包括:查找未定义符号在当前进程中的地址、分配数据/代码/bss段内存(数据初始化全局变量、代码段重定位)、执行constructor函数等。之后,可以使用dlsym在已知符号名的情况下通过符号名查找符号对应的地址。这个符号可以是一个全局变量、全局函数等。在你说的C++中,重载的函数也可以理解为全局函数,会有一个属性为weak的符号。该符号的符号名如果不做修改,默认按照System V的C++ API命名规范命名(以保证linux下不同编译器编译出来的.so和.o可以通用)。但如果使用extern "C"修饰之后,变成C的函数名,则无名称修饰,便于使用。

方法/步骤

在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0

开始编辑,填写ip地址、子网掩码、网关、DNS等。其中“红框内的信息”是必须得有的。

编辑完后,保存退出。

重启网络服务。service network restart或/etc/init.d/network restart

ping网关,ping外网进行测试。都能ping通表示网络正常。

摘要:

---修改ip地址---

即时生效:

# ifconfig eth0 192.168.1.155 netmask 255.255.255.0

重启生效:

修改/etc/sysconfig/network-scripts/ifcfg-eth0

---修改default gateway---

即时生效:

# route add default gw 192.168.1.1

重启生效:

修改/etc/sysconfig/network-scripts/ifcfg-eth0

---修改dns---

修改/etc/resolv.conf

修改后即时生效,重启同样有效

---修改host name---

即时生效:

# hostname test1

重启生效:

修改/etc/sysconfig/network


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8541225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存