gpt4 book ai didi

c++ - GCC/C++ 共享对象中 header 的静态链接

转载 作者:太空宇宙 更新时间:2023-11-04 04:08:22 28 4
gpt4 key购买 nike

-我正在尝试创建一个共享对象 libfoo.solibfoo.so 是从 foo.c 创建的- 假设我包含头文件 static.hDynamic.h 我希望编译器在其中
解析 Static.h 的符号并保留其余的,即来自 Dynamic.h 的运行时。- 我该怎么做呢 ?我需要传递的 CFLAG 和 LDFLAG 选项是什么。- 我的 makefile 设置为使用 CFLAGS=fPIC、shared、W1、export-dynamic 创建共享对象。- 在包含路径中,我为“Static.h”指定正确的位置

有人可以帮助我吗?

最佳答案

dlopen()、dlclose()、dlsym()、dlerror() 可让您打开外部运行时库。您必须声明指向这些外部对象的函数指针,然后在运行时解析它们。

如果您只是在代码中保留引用“裸”,链接器将尝试解析该符号。它会解决它或抛出错误,使您无法获得可执行文件图像。我不知道有任何链接器选项可以排除尝试链接未解析的符号。

或者我不明白你想做什么。

关于c++ - GCC/C++ 共享对象中 header 的静态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3008000/

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