1

有没有办法指示 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。

4

1 回答 1

0

这是预处理器,可以将字符添加到 -o phase 命令行:

#define first ".section .drectve\n.ascii\"
#define last \""
#define addcmd(name) first name last
#define cmd(name) asm(addcmd( name ))
cmd(thingtoadd)

因此,您也可以将任何意味着 def 文件的内容添加到其中。

于 2013-07-22T23:44:40.333 回答