Какой компилятор C соответствует Borland Turbo Link 5.1?

У нас есть среда, построенная на Borland Turbo Assembler 5.3 и Turbo Link 5.1. Мы должны поддерживать в нем какой-то наследственный код, так что об их выбрасывании не может быть и речи. Теперь я хочу ввести в него немного C.

Ни GCC, ни компилятор Microsoft C/C++ не предоставляют объектный файл в формате Borland. Это понятно. Но почему-то даже Borland C++ 5.5 и Turbo C 2.0 этого не делают. Я имею в виду, что компоновщик связывает эти объекты без предупреждений или ошибок, но связанный исполняемый файл просто падает. Пробовал это с помощью простого приветствия, все равно вылетает или ничего не видно и выходит.

Похоже, между версиями существует большая разница, и для Turbo Link 5.1 должен быть специальный компилятор C. Это так? Если да, то какой компилятор брать?

Или, что только что пришло в голову, может быть, мне лучше сделать TASM-перевод, например, BCC, а затем просто TASM?


person akalenuk    schedule 06.11.2013    source источник
comment
Если у вас есть компилятор, который пишет TASM, который поддерживает ваш ассемблер, то, похоже, это правильный путь.   -  person Charlie Burns    schedule 06.11.2013


Ответы (3)


На основании даты авторского права в выходных данных TASM5.1 (указано здесь ) и даты на странице википедии, я бы попробовал Борланд С++ 3.1 или Турбо С++ 3.1

person AShelly    schedule 06.11.2013

Вы пытались запустить файл .exe с совместимостью с Windows 95? Однако NASM находится под лицензией BSD и имеет переключатель -t для режима совместимости с Tasm от Borland. Попробуй это?

person Michael D.    schedule 06.11.2013

Я думаю, что Turbo Assembler 5.x и Turbo Link 5.x поддерживают только 16-битные приложения. Последним компилятором Borland C++, который поддерживал 16-разрядные версии, является Borland C++ 5.02.

Более новые, такие как BCC5.5, поддерживают только 32-разрядные версии, вероятно, поэтому связанное приложение вылетело.

person Jogy    schedule 07.11.2013
comment
На самом деле Borland Link 5.1 может отличить 32-битные объекты от 16-битных. Он даже не начинает связывать 32-битную версию без опции /3, вместо этого он просто изящно завершает работу с соответствующим сообщением. Проблема в том, что не очень подробно рассказывается о некорректной линковке при совпадении битности. - person akalenuk; 07.11.2013