Специфичная для Netbeans ошибка C++ "Неопределенная ссылка на XXX" - (Решение опубликовано)

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

Я пишу код C++ в Netbeans 7.1.1, работающем в Linux Mint Lisa, и продолжаю получать ошибку "Неопределенная ссылка на XXX" при попытке использовать статическую переменную. Исходя из фона в C# и, таким образом, не очень хорошо знакомого с заголовочными файлами и тому подобным, я искал часы, ожидая, что обнаружу проблему с тем, как я объявил свою переменную или мой класс. Я не мог ничего найти...

3 ответа

Решение

Перейдите в папку nbproject в проводнике файлов в Netbeans. Откройте файл configurations.xml. Прокрутите вниз до тега logicFolder с атрибутом name="SourceFiles". Убедитесь, что все ваши файлы.h и.cpp включены в теги itemPath внутри тега logicFolder! Netbeans правильно добавил некоторые, но не все мои файлы cpp и h, отсюда и проблема. Не уверен, почему возникнет такое несоответствие, поскольку все файлы классов и заголовков были добавлены с помощью одного и того же мастера Netbeans. В любом случае, с измененным файлом конфигурации, make-файлы затем обновлялись и корректно записывались в следующую сборку, и все работали как ожидалось. Надеюсь, это кому-нибудь поможет!

Просто чтобы добавить больше деталей к ответу Леви (для любого новичка в этом, как я), нажмите на вкладку "Файлы" в левой части экрана, где находится ваш список файлов и папок. Это дает вам другой список файлов, чем вкладка "Проект".

Разверните папку вашего проекта, если она еще не развернута. Одна из полученных папок - "nbproject". Разверните папку. Здесь находится файл configurations.xml.

Короче:

Вкладка "Файлы"> nbproject> configuration.xml

Однако добавление файлов.h в файл configuration.xml не сработало.

В моем случае мне нужно было только включить исходные файлы в виде строк #include в другие исходные файлы, чтобы это работало... Я мог скомпилировать отдельные исходные файлы без ошибок, но проект был другой историей. После того, как я добавил строки #include в другие исходные файлы, для которых требовалось найти определенные методы, все это заработало, как и планировалось. Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам