● C++とCの(自作)ライブラリを併用した時の質問です。

==== sub.h =================================
void sub(const char *);

==== sub.c =================================
#include <stdio.h>
#include "sub.h"
void sub(const char *s)
{
  printf("%s\n",s);
}

==== main.cc ===============================
#include "sub.h"
int main(int argc, char *argv[])
{
  sub("itteyoshi");
}

==== compile ==============================
g++ -Wall -g -c main.cc
gcc -Wall -g -c sub.c
g++ -Wall -g main.o sub.o -o main
main.cc:4: undefined reference to `sub(char const *)'
collect2: ld returned 1 exit status

Cだったら問題なくリンクできるのに〜? なぜ〜? 名前空間の問題
だと思うんですけど・・・using namespace std;でもダメでした・・・