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

Lazarus: Kompilacja kodu z Windows na Linux i odwrotnie - błędy kompilacji

Pocieszny 05 Cze 2011 18:34 1979 13
REKLAMA
  • #1 9579555
    Pocieszny
    Poziom 38  
    Posty: 5220
    Pomógł: 229
    Ocena: 261
    Jak przenieść kod napisany w Lazarusie z Windowsa na Linuksa i odwrotnie? Przy próbie kompilacji na innym systemie niż był utworzony projekt, wyrzuca błędy i nie chce mi kompilować kodu...
  • REKLAMA
  • #3 9579623
    Pocieszny
    Poziom 38  
    Posty: 5220
    Pomógł: 229
    Ocena: 261
    Takie (projekt utworzony pod Ubuntu, próba skompilowania w Windows 7):

    Lazarus: Kompilacja kodu z Windows na Linux i odwrotnie - błędy kompilacji


    A tutaj projekt utworzony pod Windows 7, próba skompilowania pod Ubuntu:

    Lazarus: Kompilacja kodu z Windows na Linux i odwrotnie - błędy kompilacji

    Lazarus: Kompilacja kodu z Windows na Linux i odwrotnie - błędy kompilacji

    Program w sumie nic nie robi, jest tylko okienko i kilka prostych kontrolek, nie dopisałem jeszcze żadnego kodu. Wygląda na to, że przy przenoszeniu kodu trzeba coś poprzestawiać w opcjach bo się gryzą jakieś konfiguracje, tylko nie mam pojęcia co :( Lazarusem zajmuję się dopiero od kilku dni. Wcześniej pisałem w Delphi, ale potrzebuję zrobić program na kilka systemów bez pisania go osobno dla każdego.
  • REKLAMA
  • #5 9579848
    Pocieszny
    Poziom 38  
    Posty: 5220
    Pomógł: 229
    Ocena: 261
    Po zakomentowaniu $R się kompiluje, tylko jest taki problem, że formatka jest dołączana w ten sposób {$R *.lfm} no i jak ją zakomentuję to po prostu jest puste okienko :|
  • #7 9579927
    Pocieszny
    Poziom 38  
    Posty: 5220
    Pomógł: 229
    Ocena: 261
    Pod Windowsem normalnie działa, tylko przy próbie skompilowania pod Linuksem wywala błędy, w których nie wiem o co może chodzić. W drugą stronę też jest taki sam problem. Nie chodzi o jakiś konkretny program. Przy każdym (nawet samym pustym okienku) dzieje się to samo.

    Trzeba jakoś konwertować te źródła, żeby były przenośne?
  • REKLAMA
  • #9 9580113
    Pocieszny
    Poziom 38  
    Posty: 5220
    Pomógł: 229
    Ocena: 261
    Chodzi o formatkę?
    
    object Form1: TForm1
      Left = 531
      Height = 516
      Top = 235
      Width = 895
      ActiveControl = Button1
      Caption = 'Form1'
      ClientHeight = 516
      ClientWidth = 895
      LCLVersion = '0.9.28.2'
      object Button1: TButton
        Left = 26
        Height = 25
        Top = 139
        Width = 75
        Caption = 'Button1'
        OnClick = Button1Click
        TabOrder = 0
      end
      object Memo1: TMemo
        Left = 416
        Height = 328
        Top = 104
        Width = 408
        Lines.Strings = (
          'Memo1'
        )
        TabOrder = 1
      end
      object ZConnection1: TZConnection
        Protocol = 'mysql'
        HostName = 'xxxxxxxxxxx'
        Port = 3306
        Database = 'xxxxxxxxxx'
        User = 'xxxxxxxxxxxxx'
        left = 40
        top = 40
      end
      object Datasource1: TDatasource
        DataSet = ZReadOnlyQuery1
        left = 120
        top = 40
      end
      object ZReadOnlyQuery1: TZReadOnlyQuery
        Connection = ZConnection1
        Params = <>
        DataSource = Datasource1
        left = 200
        top = 40
      end
    end
    
  • #11 9580341
    Pocieszny
    Poziom 38  
    Posty: 5220
    Pomógł: 229
    Ocena: 261
    Sprawdzę później czy jest to samo, bo teraz nie mam dostępu do tych plików. W każdym razie na pewno w kompilatorze ta formatka się otwiera dobrze i da się edytować. Tylko kompilacja nie idzie.
  • #12 9580574
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 225
    Podejrzewam, że albo jest ustawiony jakiś inny format, albo jest różnica pomiędzy kompilatorami i jakiejś własności nie potrafi zinterpretować zarówno w jedną jak i drugą stronę. Możesz zawsze wypróbować jeszcze wczytanie do Lazarusa, następnie usunięcie plików załączonych dyrektywą $R i zapisanie projektu.
  • REKLAMA
  • #13 9580641
    Pocieszny
    Poziom 38  
    Posty: 5220
    Pomógł: 229
    Ocena: 261
    Zauważyłem że na Ubuntu mam komilator w wersji 0.9.28.2 a na Windowsie 0.9.30, ale nie sądzę żeby to była aż taka różnica.

    Udało mi się jakoś obejść problem w ten sposób, że program utworzony pod Ubuntu otworzyłem pod Windowsem i z menu "Projekt->Zapisz projekt jako" zapisałem w innym folderze. To samo zrobiłem z wszystkimi unitami. Potem otworzyłem projekt z nowego foldera, ale kompilator upominał się o jakieś pliki .lpr .rc itd, więc je skopiowałem z wcześniejszego foldera. Po takich zabiegach program się skompilował. I co zabawniejsze pod Ubuntu już nie muszę nic kombinować bo normalnie się otwiera i działa (muszę tylko usunąć skompilowany plik wykonywalny). Dobrze, że działa, ale i tak nie ogarniam do końca tego, co tu było nie tak. Trochę się boję, że przy dalszym pisaniu znowu wyskoczą jakieś problemy...

Podsumowanie tematu

✨ Użytkownik pyta o przenoszenie kodu z Lazarusa między systemami Windows a Linux, napotykając błędy kompilacji. W odpowiedziach wskazano na problemy z dyrektywami {$R...}, które mogą powodować błędy przy kompilacji. Użytkownik zauważył różnice w wersjach kompilatorów (0.9.28.2 na Ubuntu i 0.9.30 na Windowsie) oraz sugerowano, aby usunąć dyrektywy $R i ponownie zapisać projekt. Po kilku próbach udało się skompilować projekt, co pozwoliło na jego dalsze używanie na obu systemach, mimo obaw o przyszłe problemy.
Wygenerowane przez model językowy.
REKLAMA