Я использую инструментальную цепочку Visual Studio 2010 для создания DLL. В частности, мне нужен модуль Matlab. Я считаю, что я довольно близко, но я бегу в следующее сообщение об ошибке:Ошибка командной строки при связывании DLL
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, а затем уточнить свое решение.
К сожалению, использование результатов опции «/» в силу следующей ошибки:
cl : Command line error D8021 : invalid numeric argument '/FORCE'
Как устранить эти ошибки? Есть ли способ, чтобы линкер Microsoft игнорировал конкретный неразрешенный символ?
Просьба прокомментировать, если вы собираетесь проголосовать за причину этого. Я пытался исправить эту проблему уже довольно давно, и это заставляет кого-то просто голосовать без объяснений. – Daeden