我正在使用代理DLL并希望使用" @"导出符号。他们的性格。但是,看起来这个字符对link.exe有特殊意义(实际上,对于lib.exe,我猜?)。给定一个C ++文件
extern "C" void f() { }
我可以创建一个DLL,通过运行
将f
导出为foo
cl /LD exports.cpp /link /export:foo=f
但是一旦别名包含" @"字符,其后的所有内容(包括" @"本身)似乎被剥离,即以下所有内容都导出相同的foo
符号:
cl /LD exports.cpp /link /export:foo=f
cl /LD exports.cpp /link /export:foo@=f
cl /LD exports.cpp /link /export:foo@foo=f
cl /LD exports.cpp /link /export:foo@@foo=f
我看到somebody else已经问过这件事;其他人证实了这种行为,但没有解决或解释发生了什么。所以我想知道:
是否有一个替代(易于访问)的Windows链接器,它允许我导出具有任意名称的符号?