gpt4 book ai didi

c++ - 如何使用导出相同函数名称的 2 个 C 库

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:06 25 4
gpt4 key购买 nike

<分区>

重复以下问题:C function conflict


你好,在我当前的项目中,我必须使用某种接口(interface)库。函数名由这个接口(interface)给出,这个函数做什么是开发者选择的。据我所知,一个项目应该使用这个函数,当涉及到编译时,你选择 lib 和它的功能。我尝试做的是通过包装另一个并在我的函数中调用它来同时使用现有的库和我的库:

其他库:

int function1 (int a) {
// do something
}

我的库:

int function1 (int a) {
//my code here
otherlib::function1(a);
}

问题是我无权访问其他库,而其他库也没有任何命名空间。我已经试过了

namespace old {
#include "otherlib.h"
}

然后在我的函数中通过 old::function1 调用旧函数。只要它只是头文件,它就可以工作。 lib 将其符号导出回全局空间。还有类似的东西

namespace new {
function1 (int a) {
::function1(a);
}
}

没用。最后但同样重要的是,我尝试了 ifdefs 并定义了建议 here

但我没有成功。

有什么解决办法吗?提前致谢。

编辑:我既不能访问旧库,也不能访问这两个库都将在其中使用的项目。

EDIT2:至少旧库是静态库

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