Вы пытались добавить -lSDL
в командную строку вашего компоновщика?
Неопределенные ссылки относятся к символам, которые вы пытаетесь определить в lib.cpp
, которые вы используете ar
для упаковки в libpuchuu.a
.К сожалению, вы не определяете символы, которые, как вы думаете, вы определяете.using namespace sdl;
автоматически не приводит к тому, что все, что вы определяете, находится в пространстве имен sdl
.Все, что он делает, это упорядочивает его так, что когда компилятор ищет определенное имя, он ищет его в пространстве имен sdl
вместе с основным пространством имен.
Вам нужно обернуть функции, определенные в lib.cpp
:namespace sdl { .... functions ... }
и ваш код будет очень хорошо связываться.
По моему опыту, когда я делаю ошибку с чем-то незнакомым, ошибка обычно очень глупая и не имеет ничего общего с тем, что мне незнакомо.с.Но поскольку я работаю на неизвестной территории, я автоматически предполагаю, что в моем незнании этой территории виновата ошибка, а не в том, что я совершил какую-то глупость.
Возможно, этот мой опыт применим.
И, как примечание, идея «неопределенных ссылок, атакующих вашу консоль» довольно забавно причудлива, и после попытки связать меня с изображением вашего экрана и клавиатуры, оставшихся в дымящихся руинах.