logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kompilacja do pliku .COM w środowisku Borlanda (C/C++)

orson-pl 23 Lis 2005 17:06 2661 5
REKLAMA
  • #1 2018890
    orson-pl
    Poziom 17  
    Posty: 250
    Pomógł: 18
    Ocena: 6
    Witam,
    Mam problem ze skompilowaniem mojego źródła w C lub C++, tak żeby uzyskać plik .COM. Pewnie ustawia się to gdzieś w opcjach, ale nie mogę do tego dojść:(
    Próbowałem kompilować też z linii poleceń
    
    bcc -c plik.c
    tlink /t plik.obj
    

    Ale dostaję błąd:
    Turbo Link Version 5.1 Copyright (c) 1992 Borland International
    Fatal: Cannot generate COM file : invalid initial entry point address

    Z góry dziękuję za pomoc:)
  • REKLAMA
  • #2 2020130
    Caladan
    Poziom 19  
    Posty: 242
    Pomógł: 33
    Ocena: 3
    bcc na pewno generuje ten typ binarki dla linkera?
    Oznacza to mniej-wiecej tyle, ze program nie zaczyna sie od adresu 100h. Ogolnie, piszac .comy w asmie nalezalo pamietac, by na samym poczatku programu napiasc org 100h, co oznaczalo zacznij program od adresu 100h. Wczesniej byl Program Segment Prefix, ktory zawieral dane na temat programu, a takze wiersz polecen i wektory przerwan niektore.
    Z tego co napisales wynika, ze bcc nie generuje poprawnie pliku .obj, ktory mialby wlasnie taki wpis w swojej postaci "zrodlowej". Byc moze raczej bcc /c plik.c? Poszukaj w dokumentacji, jak sie generuje .obj by go potem kompilowac do .coma.
  • REKLAMA
  • #3 2020408
    GrzesGrz71
    Poziom 19  
    Posty: 197
    Pomógł: 32
    Ocena: 4
    Witaj

    Zawsze można użyć jakiegoś programu który to zrobi po kompilacji .exe.
    np. http://4programmers.net/file.php?id=141
    Ale o ile sobie przypominam to w toolsach wchodzących w skład BCC też jest taki programik ale jak się nazywa to nie pamiętam ...
    MS-DOS ... to było daaaawno ;-)

    powodzenia
  • REKLAMA
  • #4 2022851
    orson-pl
    Poziom 17  
    Posty: 250
    Pomógł: 18
    Ocena: 6
    Caladan napisał:
    bcc na pewno generuje ten typ binarki dla linkera?

    Nie wiem, nie znam sie:( Ale za pomocą tlinka mogę skompilować do .exe

    A nie ma może jakiejś dyrektywy, którą można wstawić do kodu, tak żeby byłaby równoważna do org 100h?

    :arrow: GrzesGrz71
    W Borlandzie nie mogę znaleźć tego narzędzia, a z konwersją próbowałem wcześniej, ale wyrzuca:
    ¨¨--==--¨¨ EXE2COM ¨¨--==--¨¨ by HENDRşX of OBSESSION
    OPENED FILE KERNEL.EXE
    INCORRECT IP
    --==**==-- EXE2COM --==**==--

    ---------
    Q. How do I create a COM file?
    A. DOS versions 3.2 and earlier include an EXE2BIN utility that converts EXE files to COM files. Users who do not have EXE2BIN can use TLINK, the Borland C++ command-line linker, to create a COM file instead of an EXE file. Use the /t option. For example:
    BCC -mt -lt tiny
    will create TINY.COM instead of TINY.EXE. The -l switch passes the /t argument to the linker in this case. There are certain limitations in converting an EXE file to a COM file. These limitations are documented in the IBM Disk Operating System manual under EXE2BIN.
    ---------
    To znalazłem w dokumentacji Borlanda. Ale następny problem:
    
    Borland C++  Version 3.1 Copyright (c) 1992 Borland International
    plik.c:
    Warning kernel.c 7: Unreachable code in function main
    Turbo Link  Version 5.1 Copyright (c) 1992 Borland International
    Fatal: Unable to open file 'c0t.obj'
    

    Może już za tym kryje się rozwiązanie? Tylko nie wiem skąd wziąć c0t.obj :/
  • REKLAMA
  • #5 2023293
    QTASSO
    Poziom 13  
    Posty: 38
    Pomógł: 8
    Ocena: 2
    w wersjach od 5.0 sie niebardzo da trzeba sie troche nakombinowac bo jest tylko do programow 32 bitowych lepiej uzyc visulal studio 4.2 czy cos takiego albo lepiej borland c 2.0 tam gdzies sie powinno to ustawiac bo to jest po DOS
  • #6 2023451
    orson-pl
    Poziom 17  
    Posty: 250
    Pomógł: 18
    Ocena: 6
    Wcześniej próbowałem Borland C++ 3.1, teraz próbowałem na Turbo C++ 3.0 i ten sam problem:
    Fatal: Unable to open file 'c0t.obj'
    albo
    Fatal: Unable to open file 'c0s.obj'
    I nie mam pojęcia o co chodzi :(

    EDIT: Na Turbo C 2.0 nie chce się w ogóle skompilować, w żaden sposób.

    Dodano po 12 [minuty]:

    Ha! Udało się! :D
    Przy kompilacji brakowało jednego parametru. Ogólnie powinno wyglądać to tak:
    bcc -mt -lt -Lc:\borlandc\lib plik.c

    Wszystkim zainteresowanym bardzo dziękuję, a temat chyba można już zamknąć :)
REKLAMA