Я пытаюсь обернуть голову вокруг разработки C++, используя библиотеку SFML. Я следую учебнику (http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition-Part-7.aspx) и с использованием visual studio 2010.Как исправить непоследовательные Неразрешенные внешние ошибки?
Проблема, с которой я сталкиваюсь в отношении нерешенных внешних. Я действительно борюсь с этим, потому что в отличие от большинства ошибок, с которыми я сталкиваюсь, это не похоже на a) имеет какое-либо отношение к коду, и b) не ведет себя последовательно. Вместо того, чтобы дать вам конкретный пример и попросить помочь решить этот один пример, я надеюсь разработать более надежный способ атаковать эти проблемы. Однако я расскажу вам об общем распространении.
У меня есть решение с 8 файлами заголовков и 8 файлами cpp, которые соответствуют им. Решение стабильно: оно компилируется и запускается без ошибок и предупреждений.
Я пойду в файл заголовка и добавьте следующую строку:
виртуальная пустота DoNothing();
Я затем в файл сопоставления CPP и написать метод:
аннулируются DoNothing() {};
Скомпилировать и запустить и получить 5 нерешенных внешних ошибок. Они не указывают на какую-либо строку кода, поэтому я действительно не знаю, как их исправить, но я, очевидно, сделал что-то не так. Справедливо. Попытавшись вернуться в стабильное состояние, я удаляю две строки кода, которые я вставил, и скомпилируйте. Несмотря на то, что код идентичен последнему стабильному состоянию, я получаю те же нерешенные внешние ошибки.
Пробуя случайные вещи, я перехожу в другой файл cpp и отменяю порядок двух включенных файлов заголовков. Игра теперь компилируется. Если я переключу порядок входящих файлов заголовков обратно, он скомпилируется.
Какие черты нерешенные внешние ошибки? Почему они не ведут себя последовательно с кодом, который я ввел? Как я прочитал их, чтобы узнать, в чем проблема, и как мне избежать их в первую очередь?
спасибо.
ps: Если есть более конкретные детали, я должен предоставить, пожалуйста, просто дайте мне знать.
В вашем примере это похоже, что вы не квалифицируете имя. Вероятно, это должно быть 'void SomeClass :: DoNothing() {}' –
, пожалуйста, предоставьте [SSCCE] (http://sscce.org/) – TemplateRex