我正在使用 Visual Studio 2010 的工具链来生成 DLL。具体来说,我想要一个 Matlab 模块。我相信我已经很接近了,但是我遇到了以下错误:
LIBCMT.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
.libs/AverageFilter.mexw32 : fatal error LNK1120: 1 unresolved externals
我的 DLL 中没有这样的符号,因为在共享库中有一个没有意义。但是,“libcmt.lib”包括可执行文件和 DLL 的符号。因此,我理解该错误,但由于我明确创建了一个 DLL,因此我希望 Microsoft 的链接器忽略这个特定的未解析符号。
据我了解,在生成 DLL 时,期望没有未定义的符号,但由于唯一这样的符号无关紧要,我决定使用“/FORCE”选项。我真的不喜欢这个解决方案,但首先我想要一个工作的 Matlab 模块,然后改进我的解决方案。
不幸的是,使用 '/FORCE' 选项会导致以下错误:
cl : Command line error D8021 : invalid numeric argument '/FORCE'
如何解决这些错误?有没有办法让微软的链接器忽略特定的未解析符号?