ошибка зависимости в C - PullRequest
       30

ошибка зависимости в C

0 голосов
/ 28 апреля 2011

В моей программе я получаю эту ошибку времени выполнения (компилятор не жалуется): "неопределенный символ xyz".

библиотека, которая осуществляет этот код, - библиотека А. xyz определен в lib B.

Могу ли я сделать какой-либо вывод из этой ошибки? Как должны выглядеть мои зависимости, чтобы это работало? lib A должен идти после lib B?

Или я полностью сошел с ума ??

Перефразируя мой вопрос:

Если я внесу изменения (исключительно изменяя зависимости) в работающую программу, и теперь эта программа выдает ошибку времени выполнения: «неопределенный символ xyz», могу ли я что-нибудь сделать из этой ошибки?

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

1 Ответ

0 голосов
/ 28 апреля 2011

Если это ошибка времени компоновки, как предлагают комментаторы, то единственное, что вы можете сделать вывод без какой-либо дополнительной информации, это то, что компоновщик видит ссылку на символ с именем xyz в одном файле, но не видит символ, определенный в любом из предоставленных ему объектов или файлов lib.

Практически невозможно сказать, почему это происходит без дополнительной информации. Некоторые возможности основаны на том, что вы сказали.

  1. набор файлов, предоставляемых компоновщику, не включает lib B
  2. 'xyz' на самом деле не существует в lib B.
  3. 'xyz' определен как статический (без внешней связи) в lib B.
  4. lib B - это библиотека c ++ с включенной сортировкой имен.
  5. ???
...