Здравствуйте, samara, Вы писали:
S>Есть скрипт, который нужно скомпилировать и выложить на сервер. S>Вопрос: S>1.Как скомпилировать, каков порядок действий.
что значит "как скомпилировать" и что за "скрипт"
Cint что-ли? или имеется ввиду CGI программа?
Здравствуйте, samara, Вы писали:
S>Есть скрипт, который нужно скомпилировать и выложить на сервер. S>Вопрос: S>1.Как скомпилировать, каков порядок действий.
Просто компилиуешь С++ программу, которая читает с stdin и пишет
HTML ответ в stdout. Ну и соответсвтенно чтобы все правильно работало:
1. Использовать что-то готовое типа CGI++
2. Научиться анализировать переменные окружения и определять, какой запрос
был: POST или GET и в соответсвии с этим разгребать параметры.
для POST — они идут в stdin, длы GET беруться из URL.
Здравствуйте, aka50, Вы писали:
A>Просто компилиуешь С++ программу, которая читает с stdin и пишет
HTML ответ в stdout. Ну и соответсвтенно чтобы все правильно работало: A>1. Использовать что-то готовое типа CGI++ A>2. Научиться анализировать переменные окружения и определять, какой запрос A>был: POST или GET и в соответсвии с этим разгребать параметры. A>для POST — они идут в stdin, длы GET беруться из URL.
Что значит просто компилируешь?
Я в c/c++ полный чайник, краем уха слышал, что компилировать надо на сервере.
Запрос всегда GET.
Здравствуйте, yxiie, Вы писали:
Y>что значит "как скомпилировать" и что за "скрипт" Y>Cint что-ли? или имеется ввиду CGI программа?
Есть скрипт баннерной сети, в частности TBE, нужно привести его в рабочее состояние.
В дистрибутиве есть файл на c/c++, который и нужно скомпилировать и выложить на сервер с именем ххх.cgi.
Вся сеть напина на пхп, а вот 1 скрипт на с/с++, на нем-то я и споткнулся.
Здравствуйте, samara, Вы писали:
S>Здравствуйте, yxiie, Вы писали:
Y>>что значит "как скомпилировать" и что за "скрипт" Y>>Cint что-ли? или имеется ввиду CGI программа?
S>Есть скрипт баннерной сети, в частности TBE, нужно привести его в рабочее состояние. S>В дистрибутиве есть файл на c/c++, который и нужно скомпилировать и выложить на сервер с именем ххх.cgi. S>Вся сеть напина на пхп, а вот 1 скрипт на с/с++, на нем-то я и споткнулся.
хмм... ну в данном случае варианта 2:
1. Переписать это дело на PHP...
2. Попытаться в лоб: gcc -o xxx.cgi xxx.cpp
Вопрос только от чего этот cpp зависит... например если он генерирут jpeg,
то будет несколько сложнее
gcc -c xxx.cpp
gcc -o xxx.cgi xxx.o -ljpeg
Здравствуйте, aka50, Вы писали:
A>хмм... ну в данном случае варианта 2: A>1. Переписать это дело на PHP... A>2. Попытаться в лоб: gcc -o xxx.cgi xxx.cpp A> Вопрос только от чего этот cpp зависит... например если он генерирут jpeg, A> то будет несколько сложнее A>gcc -c xxx.cpp A>gcc -o xxx.cgi xxx.o -ljpeg
A>ну и т.д.
Что бы периписать в пхп придется разбираться в с/с++.
По поводу пункта 2 распиши по подробней , где все это нужно сделать, я же в этом деле "0".
Здравствуйте, samara, Вы писали:
S>Есть скрипт, который нужно скомпилировать и выложить на сервер. S>Вопрос: S>1.Как скомпилировать, каков порядок действий.
Берёшь компилятор (например, GCC из пакета MinGW или ещё откуда; или VC из MS Developer Studio), и компилируешь.
Подробности сильно зависят
— от компилятора
— от целевой платформы (что стоит на сервере — юникс или виндоуз)
— от того, делаешь ты это в командной строке или из-под интегрированной среды (всё тот же VC).
Посмотри, нет ли рядом с .cpp-шником ещё и makefile / .mak / .nmk / .vcproj / .dsp
Если есть — тебе повезло: это файлы пакетной компиляции (в них — нужные параметры уже прописаны). Последние два — это файлы проектов VC — их можно открыть Студией и компилять оттуда.
Всё это делается на твоей локальной машине.
Затем исполнимый файл переименовываешь (если настройки makefile не сделали это за тебя) — и выкладываешь на сервер в подходящий каталог (your-technical-site-name/cgi-bin или ещё куда).
Здравствуйте, Кодт, Вы писали:
К>Всё это делается на твоей локальной машине.
Это в случае с Windows, с UNIX'ом немного сложнее, если конечно он не собирает пакет, в чём я сомневаюсь
Для UNIX сервера. Лучше всего спросит хостера, есть ли возможность компилировать свои программы на сервере. Если есть, опять же спросить, как получить доступ к шеллу. Обычно доступ можно получить по SHH (Secure SHell) или по Telnet. Если у вас есть доступ по FTP к серверу, то возможно, что эти логин и пароль подойдут и для логина на терминал. В общем, логинитесь туда, закачиваете свой файл C++ и пробуете компилировать:
Здравствуйте, butcher, Вы писали:
B>% g++ имя_программы.cpp -o имя_скомпилированного_файла.cgi B>[/code] B>Если будут какие-то ошибки, то вы увидите их на экране, можете попробовать написать их сюда..
Получил ответ, что бы это значило?
-bash-2.05b$ g++ engine.cpp -o engine.cgi
/tmp/cc88NNQJ.o: In function `exiterr(int)':
/tmp/cc88NNQJ.o(.text+0x8e): undefined reference to `mysql_close'
/tmp/cc88NNQJ.o: In function `timeOut(int)':
/tmp/cc88NNQJ.o(.text+0x65c): undefined reference to `mysql_close'
/tmp/cc88NNQJ.o: In function `ShowBanner(char *, plc)':
/tmp/cc88NNQJ.o(.text+0x9ee): undefined reference to `mysql_query'
/tmp/cc88NNQJ.o(.text+0xbf8): undefined reference to `mysql_query'
/tmp/cc88NNQJ.o(.text+0xc89): undefined reference to `mysql_query'
/tmp/cc88NNQJ.o(.text+0xe8c): undefined reference to `mysql_query'
/tmp/cc88NNQJ.o(.text+0xf31): undefined reference to `mysql_close'
/tmp/cc88NNQJ.o: In function `main':
/tmp/cc88NNQJ.o(.text+0x118b): undefined reference to `mysql_init'
/tmp/cc88NNQJ.o(.text+0x11b2): undefined reference to `mysql_connect'
/tmp/cc88NNQJ.o(.text+0x11dc): undefined reference to `mysql_select_db'
/tmp/cc88NNQJ.o(.text+0x12a7): undefined reference to `mysql_query'
/tmp/cc88NNQJ.o(.text+0x12cb): undefined reference to `mysql_store_result'
/tmp/cc88NNQJ.o(.text+0x12f9): undefined reference to `mysql_num_rows'
/tmp/cc88NNQJ.o(.text+0x1323): undefined reference to `mysql_fetch_row'
/tmp/cc88NNQJ.o(.text+0x1351): undefined reference to `mysql_free_result'
/tmp/cc88NNQJ.o(.text+0x13e2): undefined reference to `mysql_query'
/tmp/cc88NNQJ.o(.text+0x1406): undefined reference to `mysql_store_result'
/tmp/cc88NNQJ.o(.text+0x14f2): undefined reference to `mysql_num_rows'
/tmp/cc88NNQJ.o(.text+0x152e): undefined reference to `mysql_fetch_row'
/tmp/cc88NNQJ.o(.text+0x1b6e): undefined reference to `mysql_free_result'
-bash-2.05b$
Здравствуйте, samara, Вы писали:
S>Здравствуйте, butcher, Вы писали:
B>>% g++ имя_программы.cpp -o имя_скомпилированного_файла.cgi B>>[/code] B>>Если будут какие-то ошибки, то вы увидите их на экране, можете попробовать написать их сюда..
S>Получил ответ, что бы это значило?
S>-bash-2.05b$ g++ engine.cpp -o engine.cgi S>/tmp/cc88NNQJ.o: In function `exiterr(int)': S>/tmp/cc88NNQJ.o(.text+0x8e): undefined reference to `mysql_close'
Это значит, что для разгона надо попробовать
g++ engine.cpp -o engine.cgi -lmysql
Если опять будет жаловаться на mysql, спросить у провайдера, установлен ли оный.
Если да, то уточнить, где он лежит (а именно, что задавать в ключах компиляции -I и -L).
Если нет, то придется ставить самому. Боюсь, что в этом случае форум не сможет оказать поддержки.
PS: есть серьезные основания считать, что -lmysql вылечит проблему.
vnp>g++ engine.cpp -o engine.cgi -lmysql
vnp>Если опять будет жаловаться на mysql, спросить у провайдера, установлен ли оный. vnp>Если да, то уточнить, где он лежит (а именно, что задавать в ключах компиляции -I и -L). vnp>Если нет, то придется ставить самому. Боюсь, что в этом случае форум не сможет оказать поддержки. vnp>PS: есть серьезные основания считать, что -lmysql вылечит проблему.
Воспользовался Вашим советом, стало легче, но не до конца:
g++ engine.cpp -o engine.cgi -lmysql
/usr/libexec/elf/ld: cannot find -lmysql // понимаю не нашел он lmysql
Здравствуйте, samara, Вы писали:
S>Здравствуйте, butcher, Вы писали:
S>Получил ответ, что бы это значило?
S>-bash-2.05b$ g++ engine.cpp -o engine.cgi S>/tmp/cc88NNQJ.o: In function `exiterr(int)': S>/tmp/cc88NNQJ.o(.text+0x8e): undefined reference to `mysql_close' S>... S>-bash-2.05b$
Твой скрипт работает с MySQL. Для компиляции добавь в конце:
-lmysqlclient -L/usr/local/lib/mysql -L/opt/lib/mysql
Здравствуйте, samara, Вы писали:
S>Здравствуйте, vnp, Вы писали:
vnp>>g++ engine.cpp -o engine.cgi -lmysql
vnp>>Если опять будет жаловаться на mysql, спросить у провайдера, установлен ли оный. vnp>>Если да, то уточнить, где он лежит (а именно, что задавать в ключах компиляции -I и -L). vnp>>Если нет, то придется ставить самому. Боюсь, что в этом случае форум не сможет оказать поддержки. vnp>>PS: есть серьезные основания считать, что -lmysql вылечит проблему.
S>Воспользовался Вашим советом, стало легче, но не до конца:
S>g++ engine.cpp -o engine.cgi -lmysql
Поторопился; давно с ним дела не имел. MySQL site рекомендует такую связку:
Для начала, конечно, надо убедиться, что /usr/local/mysql/bin/mysql_config действительно существует (если нет, то к провайдеру). С кавычками -- очень внимательно.
S>/usr/libexec/elf/ld: cannot find -lmysql // понимаю не нашел он lmysql
S>Жду ответа от вас и от провайдера.