【发布时间】:2013-07-23 09:04:45
【问题描述】:
有没有办法指示 MinGW-w64 或 CodeBlocks 项目在 def 文件中生成行,如下所示:
func2=func1
int __attribute__((dllimport)) Double (int);
int __attribute__((dllexport,alias("Double"))) NextDouble(int);
我认为这会起作用,但编译器会发出错误:
|2|error: 'NextDouble' aliased to undefined symbol 'Double'|
有没有办法绕过链接器的别名?
澄清:
我有一个 DLL 的导入库,它导出 Double。我正在尝试创建第二个 DLL,它将导入 Double 并导出 NextDouble,它将指向导入的 Double 的地址。所以就像我将在 def-file 中执行 NextDouble=Double 一样。这将使 dll 中的导出 NextDouble 指向导入 Double。
【问题讨论】:
-
您是否要为函数创建一个命名别名?你的实际用例是什么? (将其添加到您的问题中,而不是作为评论)
-
我想我解决了,当我尝试时,我会发布整个事情。
-
是来自另一个 dll 模块的
Double吗?您不能为驻留在另一个 dll 中的符号创建别名。 -
是的,它是:( 否则很容易解决
-
最好解释一下您要解决的问题。为什么你认为你需要做这样的事情?
标签: dll mingw codeblocks