IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Нужен нормальный C/C++ компилятор
-=CHE@TER=-
Aug 6 2008, 11:07
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



В общем, в последнее время часто приходится работать с программами на Си / C++.
В связи с этим хотелось бы нормальный компилятор. Сейчас пользуюсь DEV-CPP 4.9.8.0 и MSVC++ 6.0.
Чем меня не устраивают оба этих компилятора - на примере adx2wave с моего сайта.
DEV-CPP всем хорош, но использует msvcrt.dll, что меня несколько напрягает, размер .EXE - 14,336 байт.
MSVC++ 6.0 - при включении опции оптимизации по размеру тоже начинает, гад, использовать msvcrt.dll, если её не включить - всё хорошо, использует только .DLL от ядра системы, но, увы, размером похвастаться не может - 40,960 байт.

Поэтому хотелось бы спросить - существует ли нормальный компилятор (даже, скорее, линкер - т.к. скомпилировать, чтобы ошибок не было, могу и под другим компилятором), который:
а) Не гадит в получаемый исходный файл лишней информацией (как MSVC).
б) Не использует левые библиотеки, кроме .DLL ядра системы (как DEV-CPP).
в) Генерирует небольшие по размеру исполняемые файлы.
г) Ещё, было бы здорово, если бы он был Freeware'ный.
Кто-нибудь знает - такое в природе существует?

P.S. Блин, написал бы уже давно собственный компилятор для Delphi и C++, чем тем что есть пользоваться, но, увы, у меня нет такого дикого количества времени и сил...
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
-=CHE@TER=-
Jun 26 2014, 14:00
Сообщение #2


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Как вы, наверное, помните, я пишу сишные программы на:

QUOTE
gcc.exe (GCC) 3.2 (mingw special 20020817-1)

Это тот GCC, который из DEV-CPP.
Писал тут одну программу DOS/Windows совместимую.
Всё было нормально, пока не проверил программу под DOS в Borland Turbo C++ 3.0.
Поменял кое-чего, сохранил и... она перестала копилироваться под Windows.
Получаю какую-то странную ошибку:

QUOTE
C:\Temp/ccmYeaaa.o(.eh_frame+0x11):TESTFILE.C: undefined reference to `__gxx_personality_v0'

Погуглил - говорят, надо какими-то ключами из командной строки что-то отключать.
Но у меня же всё работало!
Начинаю по одной строчке и блоками возвращать программу из резервной копии, которая комилировалась.
Возвращал, возвращал... всё вернул! Обе программы идентичны, даже через "fc /b old_file.c TESTFILE.C" проверил - нет различий!
Что за черт?!
Осталось только имя поменять - сменил, всё заработало!

Итого: если файл имеет расширение "*.C" (C - заглавная!) и компилируется через "GCC.EXE", то включается какой-то зело параноидальный режим, в котором нельзя вызывать функции отсутствующие в стандарте ANSI C89. В частности у меня вызывалась функция GetLastError() из WinAPI.
При этом отсутствие или наличие ключа "-ansi" ни на что не влияет.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 6th June 2024 - 18:00