Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Компилирование строки


Автор: Nowise 5.6.2008, 20:49
Реальна в C++ ситуация, когда программа преобразует в машинный код свою char-переменную и сохраняет как ехе файл, при условии что исходная программа содержит в себе компилятор C++.?

Автор: mrbrooks 5.6.2008, 21:28
Цитата(Nowise @ 5.6.2008,  20:49)
Реальна в C++ ситуация, когда программа преобразует в машинный код свою char-переменную и сохраняет как ехе файл, при условии что исходная программа содержит в себе компилятор C++.?

Хм. Даже не знаю что и ответить то без мата  smile 

Автор: Sartorius 5.6.2008, 21:32
Реальна smile 

Автор: LostSoul 5.6.2008, 22:54
Цитата(Nowise @ 5.6.2008,  20:49)
Реальна в C++ ситуация, когда программа преобразует в машинный код свою char-переменную и сохраняет как ехе файл, при условии что исходная программа содержит в себе компилятор C++.?

Так это и есть компилятор, или я чего-то не понял.

Автор: Palladin 5.6.2008, 23:06
Ну вроде как да, ацкай вопрос какойто

Автор: JackYF 5.6.2008, 23:18
Цитата(Nowise @  5.6.2008,  19:49 Найти цитируемый пост)
преобразует в машинный код свою char-переменную и сохраняет как ехе файл

Программа из одного байта малополезна. Расшифруй этот поток сознания.

Автор: Nowise 6.6.2008, 13:30
Я имел ввиду массив, тоесть 
Цитата

Компилирование строки


Но если для вас эо сложно, тупо или еще чегонибудь я не настаиваю на ответе конечно. Реакция, правда,  меня смутила.

Автор: Nowise 6.6.2008, 13:53
Я насколько понимаю, раздел "вопросы новичков.." создан для вопросов и ответов на них, если тема людей оскорбила они не пишут в ней, или жалуются модератору, потомучто мне не интересно с помощью мата или без вы хотели-бы в ней ответить.   Покрайней мере я привык к такой системе.

Автор: JackYF 6.6.2008, 14:50
Цитата(Nowise @  6.6.2008,  12:30 Найти цитируемый пост)
Компилирование строки

Лично я до сих пор просто не понимаю, чего ты хочешь. Видишь ли, с технической точки зрения твой вопрос лишён всякого смысла, поэтому попробуй сформулировать его по-другому или привести пример.


 ! 
JackYF
Всем остальным: откровенный оффтоп и наезды прекращаем.


Автор: Palladin 6.6.2008, 15:24
Да вроде ненаезжал никто даже smile 
По теме, всеравно ниче не понятно и вопрос остается "аццким"
Вот вы написали:
Цитата(Nowise @  6.6.2008,  13:30 Найти цитируемый пост)
Я имел ввиду массив, тоесть 

Значит теперь тема называет не "Компилирование строки", а "Массив"
вопрос при это не меняется:
Цитата(Nowise @  5.6.2008,  20:49 Найти цитируемый пост)
Реальна в C++ ситуация, когда программа преобразует в машинный код свою char-переменную и сохраняет как ехе файл, при условии что исходная программа содержит в себе компилятор C++.? 

А значит ответ тоже... smile 

Автор: bsa 6.6.2008, 16:08
Nowise
Я, конечно, тебя не очень понял. Но попробую ответить:
Если у тебя есть программа, в строковой переменной которой находится исходный текст другой программы, а так же имеются функции для компиляции (т.е. компилятор), то никто не мешает тебе откомпилировать этот самый исходный текст.
Так как любой компилятор сначала читает файл с исходным текстом в некий буфер, представленный в виде локальной переменной, а только затем уже преобразует в машинный код (это сокращенно, на самом деле там много этапов).

Автор: andrew_121 6.6.2008, 18:32
А в чем собсно вопрос?  smile  smile 

Автор: MAKCim 6.6.2008, 20:20
Код

#include <stdio.h>
#include <string.h>

#define NAME "program"

int main() {
    char * buffer = "#include <stdio.h>\nint main() { puts(\"Hello, World!\"); return 0; }\n";
    FILE * fs = popen("gcc -x c -o"NAME" -", "w"); // 1
    fwrite(buffer, strlen(buffer), sizeof(char), fs); // 2
    pclose(fs); // 3
    system("./"NAME);
    return 0;
}


строки 1, 2, 3 заменяются на "вызов компилятора" который должен находится в
Цитата(Nowise @  5.6.2008,  20:49 Найти цитируемый пост)
исходная программа 


Автор: Nowise 7.6.2008, 10:34
Цитата

Значит теперь тема называет не "Компилирование строки", а "Массив"
вопрос при это не меняется:

У меня такой редкий С++ в котором строка это массив букв.

Makcim, спс, попытаюсь разобраться.


`system' undeclared (first use this function) 
 (Each undeclared identifier is reported only once for each function it appears in.) 

И какаято ошибка в строке
... 
system("./"NAME);
...

Автор: bronislav 7.6.2008, 18:17
какая ОС и какой компилятор используешь?

Автор: bsa 7.6.2008, 18:22
Цитата(Nowise @ 7.6.2008,  10:34)
У меня такой редкий С++ в котором строка это массив букв.

Открою тебе вселенскую тайну. По определению строка - это массив символов (char), который заканчивается символом '\0'.

Автор: Nowise 8.6.2008, 13:03
А зачем тогда меня упрекают в том, что я спросил о компиляции Строки, а потом перевел вопрос в компиляцию  Массива символов? :
Цитата

Значит теперь тема называет не "Компилирование строки", а "Массив"
вопрос при это не меняется:  ....



Система -Windows xp, компилятор- хз экзешник называется DevCpp.

Автор: Palladin 8.6.2008, 15:14
Я не упрекал smile 

Автор: bsa 9.6.2008, 11:28
Цитата(Nowise @ 8.6.2008,  13:03)
Система -Windows xp, компилятор- хз экзешник называется DevCpp.

DevCpp - это не компилятор, а среда разработки (так называемая IDE). Она использует компилятор MinGW (это gcc под windows), это ряд программ, в начале которых стоит mingw32 (make.exe, cpp.exe, ld.exe, g++.exe, gcc.exe и ряд других).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)