Есть статическая библиотека на С. И программа на С++. Пытаюсь это дело слинковать, получаю undefined reference.
Пример:
main.cpp
Код: Выделить всё
#include "hello.h"
int main ( int argc, char** argv )
{
hello_world ();
}
Код: Выделить всё
extern int hello_world (void);
Код: Выделить всё
#include "hello.h"
extern int hello_world (void)
{
return 5;
}
Код: Выделить всё
a@st504a:~/code/tmp$ gcc hello.c -c
a@st504a:~/code/tmp$ ar cqs libhello.a hello.o
a@st504a:~/code/tmp$ g++ main.cpp -L. -lhello
/tmp/ccKBlq28.o: In function `main':main.cpp:(.text+0x1d): undefined reference to `hello_world()'
collect2: ld returned 1 exit status
a@st504a:~/code/tmp$ g++ hello.c -c
a@st504a:~/code/tmp$ ar cqs libhello.a hello.o
a@st504a:~/code/tmp$ g++ main.cpp -L. -lhello
Аналогично линкуется если все компилировать сишным компилятором.
Вопрос, как всетаки сделать микс ?
Заранее спасибо