С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 08:52 |
Подскажите, как из Perl запустить модуль, написанный на C++
Я делаю следующее:
Программка на C++ Код: | #include <iostream.h>
int main(){
cout << "Hello world\n";
return 0;
} |
Создал файл hello.exe
Загрузил его в директорию cgi-bin на сервере
Присвоил атрибут 0755
В Perl использую оператор Код: | my $ok=system ("hello.exe");
if($ok){print "<p>Ошибка $ok"}else{print "<p>OK}; |
В результате hello.exe не работает
Что я делаю не так?
|
|
|
|
Прожигатель жизни
С нами с 20.10.05
Сообщения: 942
Рейтинг: 638
|
Добавлено: 24/04/06 в 10:14 |
А ОС на сервере какая?
Если *nix то понятное дело почему не запускается...
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 10:16 |
А если Unix, то что тогда делать?
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 24/04/06 в 10:21 |
Компилируй прогу прямо на сервере с помощью gcc. Всё должно заработать.
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 10:29 |
Подскажи как это.
Загружаю файл hello.cpp в директорию cgi-bin
А дальше что нужно сделать? Что и откуда нужно запустиь?
|
|
|
|
БешаныйСуслег
С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338
|
Добавлено: 24/04/06 в 11:10 |
Код: |
gcc -o hello hello.cpp
|
|
|
|
|
Прожигатель жизни
С нами с 20.10.05
Сообщения: 942
Рейтинг: 638
|
Добавлено: 24/04/06 в 11:15 |
Вряд ли у тебя хватит прав запустить gcc на сервере...
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 24/04/06 в 11:19 |
Запускаешь shell. Заливаешь исходники на сервер в какую-нибудь отдельную директорию. Компилируешь "gcc -[нужные ключи] proga.cpp". Результат кладёшь в директорию cgi-bin. Хотя перед этим можно попробовать запустить твою прогу "hello world" из командной строки, всё равно ей CGI параметры не нужны.
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 11:19 |
ghood писал: | Код: |
gcc -o hello hello.cpp
| |
Я так и делаю, пишу Код: | my $ok=system "gcc -o hello hello.cpp";
if(!$ok){print "<p>GCC OK"}else {print "<p>No gcc $ok"}; |
Завершается с кодом 256. Что это за код и где бы их посмтреть?
Ну, а если прав не хватает, то что делать?
kbot, а что значит "запускаешь shel"? Я для FTP использую WinCom, там есть командная строка, но ни одна команда типа gcc -o hello hello.cpp не проходит, система пишет "500 GCC not udestud"
|
|
|
|
Прожигатель жизни
С нами с 20.10.05
Сообщения: 942
Рейтинг: 638
|
Добавлено: 24/04/06 в 11:32 |
Если у тебя только FTP доступ к серву, то откомпилировать ты точно ничего не сможешь...
Чтобы "Запустить shell" пользуйся прогой putty
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 11:50 |
Поставил putty. Там нужно указать HostName.
Допустим указываю ftp-хост - ftp.server.ru . А логин и пароль куда пихать? И еще там есть переключатели - telnet SSH Raw - какой устанавливать? Что там дальше будет, сеанс DOS с сервером установится?
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 24/04/06 в 11:54 |
AT писал: | В результате hello.exe не работает
Что я делаю не так? |
Гыгыы ты еще спроси почему твой экзешник в броузере не запускается ) Потому что он не сделан для того чтобы запускаться в броузере (а так же под Юниксом )
В данном случае поставь у себя где-то аналогичный юникс, скомпилируй его у себя, закачай на сервак и запусти.
Чтобы запустить бинарник на юниксе, его надо скомпилить на юниксе.
Посмотри че за система с помощью команды "uname -a", поставь такую же себе и скомпилируй. Делов-то...
|
|
|
|
Прожигатель жизни
С нами с 20.10.05
Сообщения: 942
Рейтинг: 638
|
Добавлено: 24/04/06 в 11:55 |
Обычно SSH или telnet. Логин и пароль спрашивают после соединения.
Что за сервер хоть у тебя? Небось фри-хост какой-нить?
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 12:15 |
Да нет, нормальный платный хост.
При попытке соединения putty появляется окно DOS и висит некторое время. Никакого ввода параметров аторизации не предлагается. А потом отрубается.
Странно, что из программы на Perl не загружается этот компилятор. Может такое быть, что он не установлен?
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 24/04/06 в 12:40 |
AT писал: | При попытке соединения putty появляется окно DOS и висит некторое время. |
AT писал: | Никакого ввода параметров аторизации не предлагается. А потом отрубается.
Странно, что из программы на Perl не загружается этот компилятор. Может такое быть, что он не установлен? |
У тебя файрвол на хосте, надо саппорт просить открыть SSH
|
|
|
|
старый зануда
С нами с 26.07.03
Сообщения: 3291
Рейтинг: 1361
|
Добавлено: 24/04/06 в 13:07 |
Cначала выясни у саппорта хоста есть ли у тебя вообще доступ по ssh и будет ли доступ к gcc. Только тогда имеет смысл что-то делать, но имхо, лучше все-таки все отработать на локальной машине под той же операционкой, что и на хост-сервере. Только файлы на С++ надо компилировать вот так: gcc hello hello.cpp -lstdc++ или g++ hello hello.cpp, как пойдет
Только не понятно зачем тебе все это...
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 13:29 |
Pentarh писал: |
У тебя файрвол на хосте, надо саппорт просить открыть SSH |
Ох.. Если ты имеешь ввиду мой комп, то фаэвол конечно есть, может быть он и мешает. Не знаю как его отключить. К примеру, при загрузке по FTP более 10 файлов за один раз, от отрубает FTP к чертовой матери. Только перезагрузкой системы можно все восстановить.
В общем, написал письмо хостеру - почему не получается компиляция из system "gcc -o hello hello.cpp" Подожду что ответит.
Цитата: | Только не понятно зачем тебе все это... |
Хочу некоторые модули попробовать на C написать, чтоб быстрее обрабатывались большие циклы. А там видно будет. Но проблемку все-равно нужно как-то решать, не могу оставлять нерешенных задач.
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 13:59 |
М-да.. Теперь я начинаю понимать, почему все Сисадмины с такой ненавистью относятся к Windows.
|
|
|
|
Криптопохуист
С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019
|
Добавлено: 24/04/06 в 14:40 |
Я говорю не за файрвол на твоем компе, а за файрвол на том компе, где лежит твой сайт или че там у тебя, т.е. на хостинге.
А я теперь понимаю почему иногда сисадмины злятся на "непонятливых" юзеров
Виндовс и юникс - обе хороши для своего ряда задач. А плохо у тех, у кого руки кривые
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 24/04/06 в 15:00 |
Товарищ AT вам нужно книжечку для Чайников по интересующим темам , и уже некак не заниматься программированием , а тем более не спрашивать это тут.
|
|
|
|
С нами с 17.04.06
Сообщения: 23
|
Добавлено: 24/04/06 в 17:52 |
xreload писал: | Товарищ AT вам нужно книжечку для Чайников по интересующим темам , и уже некак не заниматься программированием , а тем более не спрашивать это тут.
|
Ты хоть сам то понимаешь, что сказал? Для чего нужна книжечка, пусть даже для чайников, если "уже некак не заниматься программированием".. ??? Если не заниматься программированием, то и книжки "для чайников" читать не обязательно. В общем, в следующий подумай, прежде чем что-то сказать.
______________
А проблема решена!!! Решена после обращения к сисадмину.
Вот работающий код:
Компиляция Код: | $ok=system "gcc -o hello.cgi hello.cpp -lstdc++"; |
А вот запуск программки. Оказалось, что надо указывать полный путь (может быть это особенность хоста?)
Код: | $ok=system ("/hosting/clients/server.ru/www/cgi-bin/hello.cgi"); |
В результате получаем
HELLO WORLD!!!!!!
Ну, а дальшее - дело техники. Теперь можно и в книжку заглянуть
Благодарю за помощь
з.ы. Linux все-таки поставлю на комп, теперь понятно для чего он нужен.
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 25/04/06 в 00:31 |
Да у тебя еще и с русским языком проблемы студент , в топку вообщем.
Что ты вообще на этой борде кстати делаешь я так и не понял ?
|
|
|
|