Как скомпилировать скрипт на с++
От: samara  
Дата: 16.11.04 16:27
Оценка:
Есть скрипт, который нужно скомпилировать и выложить на сервер.
Вопрос:
1.Как скомпилировать, каков порядок действий.

Вобщем помогите новичку, кому не трудно.

Заранее спасибо.

17.11.04 00:30: Перенесено модератором из 'C/C++' — Павел Кузнецов
Re: Как скомпилировать скрипт на с++
От: yxiie Украина www.enkord.com
Дата: 16.11.04 16:38
Оценка:
Здравствуйте, samara, Вы писали:

S>Есть скрипт, который нужно скомпилировать и выложить на сервер.

S>Вопрос:
S>1.Как скомпилировать, каков порядок действий.

что значит "как скомпилировать" и что за "скрипт"
Cint что-ли? или имеется ввиду CGI программа?
... << RSDN@Home 1.1.3 stable >>
Re: Как скомпилировать скрипт на с++
От: aka50 Россия  
Дата: 16.11.04 17:11
Оценка:
Здравствуйте, samara, Вы писали:

S>Есть скрипт, который нужно скомпилировать и выложить на сервер.

S>Вопрос:
S>1.Как скомпилировать, каков порядок действий.

Просто компилиуешь С++ программу, которая читает с stdin и пишет
HTML ответ в stdout. Ну и соответсвтенно чтобы все правильно работало:
1. Использовать что-то готовое типа CGI++
2. Научиться анализировать переменные окружения и определять, какой запрос
был: POST или GET и в соответсвии с этим разгребать параметры.
для POST — они идут в stdin, длы GET беруться из URL.
Re[2]: Как скомпилировать скрипт на с++
От: samara  
Дата: 16.11.04 18:11
Оценка:
Здравствуйте, aka50, Вы писали:

A>Просто компилиуешь С++ программу, которая читает с stdin и пишет

HTML ответ в stdout. Ну и соответсвтенно чтобы все правильно работало:
A>1. Использовать что-то готовое типа CGI++
A>2. Научиться анализировать переменные окружения и определять, какой запрос
A>был: POST или GET и в соответсвии с этим разгребать параметры.
A>для POST — они идут в stdin, длы GET беруться из URL.

Что значит просто компилируешь?
Я в c/c++ полный чайник, краем уха слышал, что компилировать надо на сервере.
Запрос всегда GET.

Може FAQ какой есть?
Re[2]: Как скомпилировать скрипт на с++
От: samara  
Дата: 16.11.04 18:17
Оценка:
Здравствуйте, yxiie, Вы писали:

Y>что значит "как скомпилировать" и что за "скрипт"

Y>Cint что-ли? или имеется ввиду CGI программа?

Есть скрипт баннерной сети, в частности TBE, нужно привести его в рабочее состояние.
В дистрибутиве есть файл на c/c++, который и нужно скомпилировать и выложить на сервер с именем ххх.cgi.
Вся сеть напина на пхп, а вот 1 скрипт на с/с++, на нем-то я и споткнулся.
Re[3]: Как скомпилировать скрипт на с++
От: aka50 Россия  
Дата: 16.11.04 18:28
Оценка:
Здравствуйте, 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

ну и т.д.
Re[4]: Как скомпилировать скрипт на с++
От: samara  
Дата: 16.11.04 19:45
Оценка:
Здравствуйте, 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".

Заранее спасибо.
Re: Как скомпилировать скрипт на с++
От: Кодт Россия  
Дата: 16.11.04 20:00
Оценка: 7 (1)
Здравствуйте, 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 или ещё куда).
Перекуём баги на фичи!
Re[2]: Как скомпилировать скрипт на с++
От: butcher Россия http://bu7cher.blogspot.com
Дата: 17.11.04 05:00
Оценка: 2 (1)
Здравствуйте, Кодт, Вы писали:

К>Всё это делается на твоей локальной машине.

Это в случае с Windows, с UNIX'ом немного сложнее, если конечно он не собирает пакет, в чём я сомневаюсь

Для UNIX сервера. Лучше всего спросит хостера, есть ли возможность компилировать свои программы на сервере. Если есть, опять же спросить, как получить доступ к шеллу. Обычно доступ можно получить по SHH (Secure SHell) или по Telnet. Если у вас есть доступ по FTP к серверу, то возможно, что эти логин и пароль подойдут и для логина на терминал. В общем, логинитесь туда, закачиваете свой файл C++ и пробуете компилировать:
% g++ имя_программы.cpp -o имя_скомпилированного_файла.cgi

Если будут какие-то ошибки, то вы увидите их на экране, можете попробовать написать их сюда..

Нет ничего невозможного..
Re[3]: Как скомпилировать скрипт на с++
От: samara  
Дата: 17.11.04 07:23
Оценка:
Здравствуйте, 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$
Re[4]: Как скомпилировать скрипт на с++
От: vnp  
Дата: 17.11.04 21:20
Оценка: 2 (1) +1
Здравствуйте, 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 вылечит проблему.
Re[5]: Как скомпилировать скрипт на с++
От: samara  
Дата: 18.11.04 05:31
Оценка:
Здравствуйте, vnp, Вы писали:


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

Жду ответа от вас и от провайдера.
Re[4]: Как скомпилировать скрипт на с++
От: FrIcE http://www.utmn.ru/~frice
Дата: 18.11.04 09:59
Оценка: 3 (1)
Здравствуйте, 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
... << RSDN@Home 1.1.3 stable >>
Re[6]: Как скомпилировать скрипт на с++
От: vnp  
Дата: 18.11.04 22:39
Оценка:
Здравствуйте, 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 рекомендует такую связку:

CFG=/usr/local/mysql/bin/mysql_config
sh -c "gcc -o progname `$CFG --cflags` progname.c `$CFG --libs`"

Для начала, конечно, надо убедиться, что /usr/local/mysql/bin/mysql_config действительно существует (если нет, то к провайдеру). С кавычками -- очень внимательно.

S>/usr/libexec/elf/ld: cannot find -lmysql // понимаю не нашел он lmysql


S>Жду ответа от вас и от провайдера.
Re[7]: Как скомпилировать скрипт на с++
От: vnp  
Дата: 18.11.04 22:43
Оценка:
Здравствуйте, vnp, Вы писали:

vnp> g++

разумеется
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.