Привести исходник не могу, могу лишь более подробно все описать!
Итак, мы имеем некий my.cpp который использует класс class.cpp.
Есть 2 сервера:
SERVER1 - мой локальный Debiweb Linux сервер
SERVER2 - сервер провайдера FreeBSD Linux сервер
ДЕЙСТВИЕ - 1
Копирую на SERVER1 class.cpp и компоную class.o, затем компилирую с my.cpp - получаю a.out ВСЕ РАБОТАЕТ ХОРОШО.
ДЕЙСТВИЕ - 2
Копирую на SERVER2 полученный на SERVER1 a.out получаю ошибку:
$ ./a.out
ELF binary type "0" not known.
./a.out: 14: Syntax error: ")" unexpected
ДЕЙСТВИЕ - 3
Копирую на SERVER2 полученный на SERVER1 class.o, затем компилирую с my.cpp получаю ошибку (привожу небольшой кусок ради экономия места на форуме!):
: undefined reference to `cout'
class.o(.text+0x686): In function `Class::SetCodePage(Code) const':
: undefined reference to `ostream::operator<<(char const *)'
class.o(.text+0x69f): In function `Class::SetCodePage(Code) const':
: undefined reference to `cout'
class.o(.text+0x6a4): In function `Class::SetCodePage(Code) const':
: undefined reference to `ostream::operator<<(char const *)'
class.o(.text+0xbcb): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `cout'
class.o(.text+0xbd0): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `ostream::operator<<(char const *)'
class.o(.text+0xbe4): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `cout'
class.o(.text+0xbe9): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `ostream::operator<<(char const *)'
class.o(.text+0xbf4): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `ostream::operator<<(char const *)'
class.o(.text+0xc04): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `cout'
class.o(.text+0xc09): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `ostream::operator<<(char const *)'
class.o(.text+0xc23): In function `Class::PrintBuffHexGetPost(void) const':
: undefined reference to `cout'
ДЕЙСТВИЕ - 4
Копирую на SERVER2 class.cpp и компоную class.o, затем компилирую с my.cpp - получаю a.out ВСЕ РАБОТАЕТ ХОРОШО.
ДЕЙСТВИЕ - 5
Произвожу с полученными class.o, a.out на SERVER2 те же действия, только в обратном порядке на мой локальный Линукс сервер SERVER1 и получаю ошибки:
$ ./a.out
-bash: ./a.out: No such file or directory
/tmp/ccpsgDbR.o: In function `main':
/tmp/ccpsgDbR.o(.text+0x14): undefined reference to `Class::Class(void)'
/tmp/ccpsgDbR.o(.text+0x28): undefined reference to `Class::SetCodePage(Code) const'
/tmp/ccpsgDbR.o(.text+0x41): undefined reference to `Class::GetHttpHost(char *) const'
class.o: In function `std::__verify_grouping(char const*, unsigned, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
class.o(.text+0xd): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
class.o(.text+0x60): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned) const'
class.o(.text+0x9d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned) const'
class.o(.text+0xc8): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned) const'
class.o: In function `Class::Class[not-in-charge]()':
Как я мог понять, все зависит от разных Линукс серверов, но почему такое происходит я не могу понять!
По идее, компилируется программа и ее бинарник должен работать на Любом Линуксе.
ЗЫ я пробовал ДЕЙСТВИЕ - 3 на бесплатном хостинге h10.ru - там все сработало и нормально скомпилировало!