Мои попытки не чем хорошим не закончились.
Исходники:
main.c
Код: Выделить всё
#include "say.h"
int main()
{
say();
return 0;
}
Код: Выделить всё
#include <iostream>
using namespace std;
int say()
{
cout << "Hello\n";
return 0;
}
Код: Выделить всё
int say();
Код: Выделить всё
[silos@asakura 1]$ gcc -c main.c -o main.o
[silos@asakura 1]$ g++ -c say.cpp -o say.o
[silos@asakura 1]$ gcc -o say say.o main.o
say.o: In function `__static_initialization_and_destruction_0(int, int)':say.cpp:(.text+0x23): undefined reference to `std::ios_base::Init::Init()'
say.o: In function `__tcf_0':say.cpp:(.text+0x6c): undefined reference to `std::ios_base::Init::~Init()'
say.o: In function `say()':say.cpp:(.text+0x83): undefined reference to `std::cout'
:say.cpp:(.text+0x88): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
say.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
main.o: In function `main':main.c:(.text+0x12): undefined reference to `say'
collect2: ld returned 1 exit status
[silos@asakura 1]$ g++ -o say say.o main.o
main.o: In function `main':main.c:(.text+0x12): undefined reference to `say'
collect2: ld returned 1 exit status
[silos@asakura 1]$
Я так думаю, что компилятору необходимо указать каким образом линковать, что бы не было undefined reference, но как?