Игнорировать неопределенную ссылку в C++
Есть ли опция компилятора для игнорирования неопределенных ссылок? Я компилирую код C++ под Linux.
4 ответа
Нет, это невозможно Компоновщик физически не может создать выходной исполняемый файл с неопределенной ссылкой. Это не выбор, который делает компоновщик.
Это как сказать: "Сортировать этот список, но я не скажу вам, что это за список" или "Решить мою проблему, но я только выбросил код".
Вы не компилируете, вы ссылаетесь. Ошибка неопределенной ссылки возникает, когда связываемая программа вызывает функцию, которая не определена внутри частей программы, которые вы связываете. Игнорирование этой ошибки будет означать, что программа вызывает функцию, которая не существует - что же тогда произойдет?
Таким образом, короткий ответ: нет такого варианта, и это не имеет смысла.
Ниже я предполагаю, что вы имеете в виду ошибки компоновщика, а не ошибки компилятора. Взгляните на это: может ли GCC не жаловаться на неопределенные ссылки?
Это было полезно для меня, так как я пишу тестовые случаи, которые используют кучу вещей в файле AC. Проблема для меня заключалась в том, что в этом же C-файле были определены функции, включающие ссылки на неопределенные функции. То есть они не определены для меня в моей ограниченной области тестирования, но я не вызываю эти функции. Поэтому я хочу его скомпилировать и связать без ошибок. Есть и другие решения, такие как это: Есть ли способ игнорировать неиспользованные неопределенные ссылки? но я не смог заставить его работать (вероятно, потому что у меня более старая версия gcc)