Это не имеет ничего общего с пространствами имен.Если вы хотите скомпилировать, а не линковать, вы должны предоставить gcc опцию -c
:
g++ -c calc_mean.cpp -o mean.o
Ошибка, которую вы получаете, заключается в том, что g ++ пытается создать исполняемую программу (вы не сказалииначе) для которого вам нужно определить стандартную точку входа: main
.
Нет ничего плохого в объявлении mean
в одном пространстве имен и определении другого mean
в глобальной области пространства имен, хотяв этом случае первое объявление не используется, поэтому не имеет никакого эффекта.
Чтобы создать статическую библиотеку из результирующего объектного файла, вам необходимо использовать утилиту архивирования (ar
).Например:
ar rcs libmean.a mean.o