Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как использовать скомпилированную программу на cpp на другом сервере? / 6 сообщений из 6, страница 1 из 1
07.01.2007, 14:27:43
    #34240215
armix2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать скомпилированную программу на cpp на другом сервере?
Есть некая программа на срр, я ее компилировал у себя на локальном Линухе и полученный файл a.out прекрасно работает там же!
Затем я перенес этот файл на хостинг моего провайдера - там он не пашет выдает синтаксическую ошибку!
Перекомпиляцией исходника на сервере провайдера - полученный a.out работает прекрасно!

Вопрос, почему не работал первый, скомпилированный у меня файл на сервере провайдера?

Надо обязательно компилит по новой для другого Линукса?

Разве полученный файл не бинарник, который должен работать на любом Линуксе?
...
Рейтинг: 0 / 0
07.01.2007, 14:55:02
    #34240230
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать скомпилированную программу на cpp на другом сервере?
armix2000там он не пашет выдает синтаксическую ошибку!
Перекомпиляцией исходника на сервере провайдера - полученный a.out работает прекрасно!
Как это синтаксическую? Может Runtime error? Вы пробовали перекомпилировать исходник и по Вашим словам он удачно перекомпилировался, значит в коде не было синтаксических ошибок?

Как бы то ни было, мы здесь не телепаты, приведите код ошибки, код программы, версии компиляторов установленных на Вашей локальной машине и на сервере.

armix2000Надо обязательно компилит по новой для другого Линукса?
Не обязательно.

armix2000Разве полученный файл не бинарник, который должен работать на любом Линуксе?
Теоретически должен. Нужно разбираться, возможно Вы что то делаете не правильно.
...
Рейтинг: 0 / 0
08.01.2007, 12:18:59
    #34240938
armix2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать скомпилированную программу на cpp на другом сервере?
Привести исходник не могу, могу лишь более подробно все описать!

Итак, мы имеем некий 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 - там все сработало и нормально скомпилировало!
...
Рейтинг: 0 / 0
08.01.2007, 12:49:11
    #34240995
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать скомпилированную программу на cpp на другом сервере?
FreeBSD - это не linux, это - намного лучше. Но всё же:
Если на провайдерском серевере не включена совместимость с бинарниками
linux`a - то вам ничё не светит - тока подымить дома фрю и компилять по
новой.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
08.01.2007, 13:58:47
    #34241115
armix2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать скомпилированную программу на cpp на другом сервере?
lissyara
FreeBSD - это не linux, это - намного лучше. Но всё же:
Если на провайдерском серевере не включена совместимость с бинарниками
linux`a - то вам ничё не светит - тока подымить дома фрю и компилять по
новой.
Posted via ActualForum NNTP Server 1.3

На www.h10.ru стоял FreeBSD - там все нормально компилировалось!
...
Рейтинг: 0 / 0
08.01.2007, 14:33:24
    #34241156
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как использовать скомпилированную программу на cpp на другом сервере?
> Если на провайдерском серевере не включена совместимость с бинарниками
> linux`a
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как использовать скомпилированную программу на cpp на другом сервере? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]