214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
1

компилятор с++

28.05.2012, 20:19. Показов 1919. Ответов 8
Метки нет (Все метки)

кто знает может можно сделать так чтоб компилятор не использовал фиксированных адресов, а использовал только относительное смещение?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2012, 20:19
Ответы с готовыми решениями:

Компилятор (Visual C++ 6.0) в плохой совместимости с Windows 7. Посоветуйте другой компилятор
Здравствуйте! Я недавно начал заниматься С++, но мой компилятор (Visual C++ 6.0) в плохой...

компилятор
Здравствуйте, я написал код. а чтоб скомпилировать у меня нету компилятора, удалил по ошибке, а...

Компилятор
Привет) Подскажите ,пожалуйста, по работе компилятора, он(компилятор) берет исходный код и...

Компилятор С++
посоветуйте пожалуста среду для С++ хорошую.

8
Evg
Эксперт CАвтор FAQ
21244 / 8258 / 636
Регистрация: 30.03.2009
Сообщений: 22,602
Записей в блоге: 30
28.05.2012, 21:06 2
Тебе для чего? Просто чтобы понимать, чего в конечном итоге ты хочешь видеть
0
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
28.05.2012, 21:19  [ТС] 3
Цитата Сообщение от Evg Посмотреть сообщение
Просто чтобы понимать, чего в конечном итоге ты хочешь видеть
база независимый код
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
28.05.2012, 21:24 4
Для g++ опция -fPIC
1
Evg
Эксперт CАвтор FAQ
21244 / 8258 / 636
Регистрация: 30.03.2009
Сообщений: 22,602
Записей в блоге: 30
28.05.2012, 21:31 5
В линуксе у gcc есть режим -fPIE, который генерит позиционно-независимый код. В итоге получается что-то типа динамической библиотеки, но с точкой входа. А загрузчик по логике вещей должен разместить программу по рандомному адресу. Но на практике я вижу один и тот же адрес. Может это как-то дополнительно настраивать

Добавлено через 4 минуты
О! Надо две опции подать:

C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int x;
 
int main (void)
{
  printf ("&x = %p\n", &x);
  return 0;
}
Код
$ gcc -fPIE -pie t.c
$ ./a.out 
&x = 0xa5f020
$ ./a.out 
&x = 0x528020
$ ./a.out 
&x = 0x53d020
Опция -fPIE - для транслятора, -pie - для линкера

Добавлено через 50 секунд
Правда здесь адреса разные с точностью до страницы (тут уже скорее всего ничего не сделать)
1
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
28.05.2012, 21:31  [ТС] 6
Evg, у меня windows, а из компиляторов dev и borland
0
Evg
Эксперт CАвтор FAQ
21244 / 8258 / 636
Регистрация: 30.03.2009
Сообщений: 22,602
Записей в блоге: 30
28.05.2012, 21:33 7
а... ну тогда хз... Но наверняка тоже это всё есть, поищи в настройках компилятора и линкера. По научному называется "pisition independent executable". Этот режим делался именно с целью защиты, чтобы не было залипающих адресов от запуска к запуску
1
214 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
28.05.2012, 21:50  [ТС] 8
а можно сделать так чтобы dll не выгружалась после закрытия процесса который её вызвал?
0
Evg
Эксперт CАвтор FAQ
21244 / 8258 / 636
Регистрация: 30.03.2009
Сообщений: 22,602
Записей в блоге: 30
28.05.2012, 22:35 9
Я не знаю, я в программировании под виндой не разбираюсь...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2012, 22:35
Помогаю со студенческими работами здесь

Компилятор G++
Здравствуйте, уважаемые программисты! У меня возникла такая проблема. Я всегда писал код на С++...

Компилятор
что делает компилятор он переводит в машинный язык что такое машинный язык

Компилятор?
Вот Visual Studio это IDE а какой в нем компилятор? название его скажите плз)

компилятор
Подскажите какой-нибудь хороший компилятор с++??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru