/tmp/cc6yDGg7.o: In function `main':
XbugMain.cpp:(.text+0x35): undefined reference to `SomeClass::SomeMethod(int)'
XbugMain.cpp:(.text+0x40): undefined reference to `SomeClass::AnotherMethod()'
collect2: выполнение ld завершилось с кодом возврата 1
Compilation failed.
Погуглив, обнаружил, что для устранения ошибок можно включать в основную программу (XbugMain.cpp) не заголовочный файл Xbug.h, а Xbug.cpp. Тогда всё ОК. Но это же не правильно! Тем более я таким образом не могу пользоваться библиотеками, которые предоставляют только заголовочные файлы
Кто поймёт мой вопрос, буду благодарен, а кто поможет, буду благодарен безмерно.
Я так люблю свою страну, и ненавижу государство! (LUMEN) Дверь не ломай - пробуй в неё войти. (Кукрыниксы)
как компилируете?
где-то типа так:
g++ -c XbugMain.cpp Xbug.cpp
g++ XbugMain.o Xbug.o
ну или просто
g++ XbugMain.cpp Xbug.cpp
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Ну вот и получается, у Вас должно быть два *.o файла, которые нужно вместе слинковать, но Вы указываете только один, вследствие чего появляется маленькая проблема(он не знает где реализация SomeClass и с чем его есть)
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Спасибо. Получается, ручками нужно всё это делать... Или IDE поумнее найти
можно makefile наваять. Обычно так и делают, и запускать make.
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Geany, вообще говоря, не IDE, а редактор с кое-какими дополнительными возможностями (что бы о нем не говорили), поэтому ничего особенного, в т.ч. и автоматической сборки проектов, от него ждать не стоит.
Самый, наверное, оптимальный вариант - написать Makefile, как уже советовали, после чего вызывать сборку требуемого вида из Geany. Для простых случаев можно залезть в "Задать параметры сборки" и переписать вызовы под себя.
если разговор об IDE я бы все-таки посоветовал Net Beans 6.5 =)
emacs крут, но для неискушенного пользователя(коим на мой взгляд является топикстартер) будет лучше сидеть за настоящей IDE.
Вообще, для начала стоит разобраться в основах, попрогить без всяких удобств. К примеру когда жаву осваивал, писал исключительно на JCreatorPro там менюшки выпадающие и т.п. Потом как за простой редактор сел(а в универе у нас только простые были на тот момент) и действительно "сел". По десять минут вспоминал, как функция называется и какие параметры передавать. Пришлось пересесть на JCreatorLE. Так что, IDE это хорошо, но начинать с нее нельзя.
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
думаю дело в другом - тогда вы не видели необходимость запоминать эти функции, я тоже так "садился" =)) сейчас библиотечные функции знаю как Отче Наш.
свободно работаю и в IDE и в Emacs.
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)