Я могу попросить, чтобы VC ++ компоновщик проигнорировал неразрешенный внешний облик?

Я пытаюсь разработать очень сложный проект с открытым исходным кодом с VC ++. Проект состоит из десятков библиотек и одного исполняемого файла в зависимости от тех библиотек.

По некоторым причинам VC ++ компоновщик не хочет заниматься 40 функциями, реализованными в одной из тех библиотек и отчетов "неразрешенная внешняя ссылка" на каждом, таким образом, я не могу связаться. Я не хочу напрасно тратить время, разрешая проблему - те функции, вероятно, никогда не вызываются.

Я хотел бы просто попросить, чтобы компоновщик связал то, что это видит, и вставьте некоторую разумную обработку ошибок (как создание отчетов об ошибке и завершение программы) вместо того, чтобы пропустить функции. Как я могу сделать это?

11
задан sharptooth 24 February 2010 в 13:58
поделиться

4 ответа

Вы можете использовать опцию компоновщика / FORCE: UNRESOLVED .

Документация по этому поводу содержит довольно заниженное предупреждение:

Файл, созданный с этой опцией, может не работать должным образом.

На практике обработки ошибок не будет - только сбой.

13
ответ дан 3 December 2019 в 04:13
поделиться

Есть некоторые заметные исключения, но большинство проектов OpenSource не предназначены для создания в VisualStudio.

Обычно для порта Windows лучше использовать систему cygwin или mingw . Мой совет обычно касается mingw, если только программа не использует много вызовов Unix OSey, таких как каналы и сигналы.

1
ответ дан 3 December 2019 в 04:13
поделиться

Если функции действительно никогда не вызываются, тогда создайте для библиотек фактические библиотеки (файлы .lib). Тогда компоновщик будет извлекать из библиотек только то, что нужно.

Задача компоновщика - разрешить все ссылки, поэтому я не думаю, что вы заставите его вставлять код обработки ошибок.

P.S. Первое, что я проверю, - это посмотреть, были ли функции C скомпилированы как C ++, что привело к отсутствию символов.

6
ответ дан 3 December 2019 в 04:13
поделиться

Если они никогда не вызываются, удалите ссылки из вашего проекта. Если они позвонят, то исправьте чертову проблему. Другого варианта здесь нет.

5
ответ дан 3 December 2019 в 04:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: