Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2

портативный gcc

06.12.2010, 13:18. Показов 5176. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто-нибудь знает можно ли gcc запускать с флешки? Или как это можно сделать? Просто в универе установлено не то, что мне нужно, преподователи разрешают приходить с ноутами и пользоваться своими компиляторами, но ноута у меня нет, поэтому вот подумал, может можно gcc на флешке притащить (устанавливать его на универский комп, естественно ни кто не позволит)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2010, 13:18
Ответы с готовыми решениями:

Вышел GCC 4.5.0
GNU и команда разработки GCC рады представить релиз GNU Compiler Collection версии 4.5. В новой версии: Добавлена поддержка...

gcc ресурс
Есть возможность собрать исходник с ресурсом, то есть файлом например текстовый, который будет помещен в программу и к которому можно будет...

Встроенные типы gcc.
Где взять список встроенных типов gcc с указанием разрядности каждого? float, double я знаю. А какие есть ещё? Например, hyper есть? А если...

11
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.12.2010, 13:27
Можно. В gcc всегда через опции можно настроить любые пути. Чуть позже напишу, как

Но установки одного только gcc не всегда оказывается достаточноым. Обычно каждая версия gcc затачивается на работу с некоторой конкретной версией binutils и glibc. Теортеически версии всего могут быть произвольными, но практически серьёзная отладка идёт только на зафиксированном наборе версий
1
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
06.12.2010, 13:41  [ТС]
Объясню ситуацию более подробно.
Учусь заочно, сессии раз в пол года. Вот наконец-то у нас началось программирование, с языка Fortran. К февралю нужно освоить его до уровня "введите матрицу, выведите что-нибудь". В универе стоят Fortran - 77, который не поддерживает работу с WinAPI, да вообще, мягко говоря, не удобен в работе (чого стоят только обязательные 6 пробелов в каждой строке, чтоб с перфокарты читать))) Так вот, до февраля время есть, ну и хотел сделать нормальное ГУИ приложение (API), на фортране сегодняшнего дня. Дома пользуюсь gfortran (из gcc), но на сессии будут лабораторные, там работа с этими готовыми исходниками (которые дома пишем). Естественно FORTRAN - 77 не скомпилит, то что я хочу написать, вот и возникла идея принести gfortran на флешке.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.12.2010, 14:01
Лучший ответ Сообщение было отмечено как решение

Решение

Основная масса linux'овых программ (особенно системных) устанавливается так, что разные компоненты лежат в разных местах. Покажу на своём примере, как я свалил все компоненты в одну кучу и как из этой кучи потом запустил компилятор. Сразу предупреждаю, что на другой версии компилятора процесс может быть немного другим. И даже на этой версии компилятора на другом дистрибутиве ОС может быть немного по другому

Все приказы начинаются со знака $. то, что без знака $ - это выдача на экран. Предположим, что мы хотим свалить всё в каталог /home/trampampam/A
  1. Создаём наш каталог

    Code
    1
    
    $ mkdir /home/trampampam/A
  2. Смотрим, где вообще лежит gcc и копируем его

    Code
    1
    2
    3
    
    $ which gcc
    /usr/bin/gcc
    $ cp /usr/bin/gcc /home/trampampam/A
  3. Смотрим, как настроен gcc. Здесь из всей выдачи я оставлю только интересное для на
    Code
    1
    2
    3
    4
    
    $ gcc -print-search-dirs
    install: /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/
    programs: =/usr/libexec/gcc/i686-pc-linux-gnu/4.1.2/:<... skiped ...>
    libraries: =/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/:<... skiped ...>
    Здесь имеется три абсолютных пути, по которым установлены разные компоненты компилятора. В нашем случае первый путь (install) и третий (libraries) совпадают. Нам нужно содержимое всех трёх путей (а в моём случае - двух) свалить в отдельный каталог. Удобнее всего внутри нашего каталога /home/trampampam/A завести другой подкаталог:

    Code
    1
    2
    3
    
    $ mkdir /home/trampampam/A/B
    $ cp -r /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/* /home/trampampam/A/B
    $ cp -r /usr/libexec/gcc/i686-pc-linux-gnu/4.1.2/* /home/trampampam/A/B
    Для контроля покажу, что скопировалось в моём случае

    Code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    
    $ ls /home/trampampam/A/B
    SYSCALLS.c.X
    cc1*
    cc1plus*
    collect2*
    crtbegin.o
    crtbeginS.o
    crtbeginT.o
    crtend.o
    crtendS.o
    crtfastmath.o
    f951*
    include/   <----- каталог
    libgcc.a
    libgcc_eh.a
    libgcc_s.so@
    libgcc_s.so.1
    libgcov.a
    libgfortran.a
    libgfortran.la*
    libgfortran.so@
    libgfortran.so.1@
    libgfortran.so.1.0.0*
    libgfortranbegin.a
    libgfortranbegin.la*
    libmudflap.a
    libmudflap.la*
    libmudflap.so@
    libmudflap.so.0@
    libmudflap.so.0.0.0*
    libmudflapth.a
    libmudflapth.la*
    libmudflapth.so@
    libmudflapth.so.0@
    libmudflapth.so.0.0.0*
    libstdc++.a
    libstdc++.so@
    libstdc++.so.6@
    libstdc++.so.6.0.8*
    libstdc++_pic.a
    libsupc++.a
    libsupc++.la*
    tree1*
    В этом списке "include" является каталогом, а потому для сравнения покажу первый уровень содержимого

    Code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    $ ls /home/trampampam/A/B/include
    README
    cxxabi.h
    emmintrin.h
    float.h
    g++-v4/   <----- каталог
    iso646.h
    limits.h
    mf-runtime.h
    mm3dnow.h
    mm_malloc.h
    mmintrin.h
    pmmintrin.h
    stdarg.h
    stdbool.h
    stddef.h
    syslimits.h
    unwind.h
    varargs.h
    xmmintrin.h
  4. Работаем с локальной копией gcc. ЧТобы заставить её работать, надо в gcc по опции передать путь, где находятся прочие компоненты. В нашем случае мы свалили всё в одну помойку, а потому достаточно передать одну опцию -B

    Code
    1
    
    $ /home/trampampam/A/gcc -B/home/trampampam/A/B t.c
    Для контроля надо запустить сдополнительной опцией -v и глазками проконтролировать, что подцепилось то, что нужно. Опять-таки неинтересные моменты пропускаю

    Code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    $ /home/trampampam/A/gcc -B/home/trampampam/A/B t.c -v
    ...
    gcc version 4.1.2 (Gentoo 4.1.2 p1.1)
     /home/trampampam/A/B/cc1 -quiet -v -isystem /home/trampampam/A/B/include t.c -quiet -dumpbase t.c -march=i686 -auxbase t -version -o /tmp/ccQPvRDI.s
    ...
    #include "..." search starts here:
    #include <...> search starts here:
     /home/trampampam/A/B/include
     /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include
     /usr/include
    ...
     /home/trampampam/A/B/collect2 ... /home/trampampam/A/B/crtbegin.o -L/home/trampampam/A/B ... /home/trampampam/A/B/crtend.o ...
    Нужно обратить внимание на:
    • /home/trampampam/A/B/include должно быть первым в списке путей до инклюдов, а содержимое каталога /home/trampampam/A/B/include совпадает с содержимоым каталога /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include (второй по списку)
    • В строке запуска линкера (collect2) опция -L/home/trampampam/A/B должна быть самая первая среди всех опций -L (их там несколько)

Добавлено через 1 минуту
Забыл. При копировании "gcc" надо аналогичным образом скопировать "g++" (пускач для компилятора Си++) и "gfortran" (пускач для фортрановского компилятора)

Добавлено через 22 секунды
При запуске с флэшки надо будет скорректировать опцию -B
3
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
06.12.2010, 14:30  [ТС]
Я просто хотел уточнить - возможно ли это. Evg, спасибо за полный ответ!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.12.2010, 15:11
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я просто хотел уточнить - возможно ли это. Evg, спасибо за полный ответ!
Тогда не надо писать "Или как это можно сделать?" Если будешь пробовать - отпишись о результате. Если получится нормально - надо будет в FAQ вырезать. Не пропадать же добру
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
06.12.2010, 15:16  [ТС]
Да, буду пробовать, когда флешка под рукой будет)
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
06.12.2010, 17:11
только мне кажется что ТС`у нужен mingw?
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.12.2010, 17:17
Цитата Сообщение от niXman Посмотреть сообщение
только мне кажется что ТС`у нужен mingw?
Возможно, но мне кажется, что с под виндой он бы сам смог разобраться что куда
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
06.12.2010, 18:50  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
только мне кажется что ТС`у нужен mingw?
Да, так оно и есть. Просто сижу под Cygwin'ом, вот и написал по привычке gcc.

Цитата Сообщение от Evg Посмотреть сообщение
Возможно, но мне кажется, что с под виндой он бы сам смог разобраться что куда
Да, разберусь. Главное, что я узнал, что это реализуемо. (я почему-то думал, что компилятор с флешки работать не будет))
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
06.12.2010, 19:40
Цитата Сообщение от Kastaneda Посмотреть сообщение
я почему-то думал, что компилятор с флешки работать не будет
микрософткомпилятор не будет.
а нормальный, типа мингв - будет)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
06.12.2010, 19:52
Цитата Сообщение от niXman Посмотреть сообщение
микрософткомпилятор не будет.
а нормальный, типа мингв - будет)
Микрософт тоже будет (говорю именно об компиляторе, а не IDE).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2010, 19:52
Помогаю со студенческими работами здесь

Компиляция GCC в Windows
У меня в виндусе GCC для виндуса (портированный) Я хочю на нем (5,1) скомпилировать сам компилятор из исходников. ...

Ресурсы под GCC
Подозреваю, что в linux это может иначе называться или вообще не поддерживаться средствами операционной системы, но думаю, что какойто...

gcc с командной строки
Как с командной строки скормить ему исходник? Как правильно оформить файл проекта, чтоб включал в себя все файлы с декларациями и...

GCC - компиляция C/C++ программ
Обсуждение приветствуется , буду рад пожеланиям по улучшению данной статьи.:) Статья в процессе написания, пожелания пишите сюда ...

GCC. Си. Таблица с обработкой.
язык - чистый Си. ссылка на методичку http://rapidshare.com/files/435866013/______________part_2.pdf При запуске на...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru