Kirjoittaja Aihe: [ ratkaistu ] c++ -kääntäjä ei suostu kääntämään  (Luettu 3930 kertaa)

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Koneessa on Ubuntu 14.04 ja qt5-default ja libqwt. Ennen onnistuin kääntämään ohjelman uudestaan, jos vaikka muokkasin esim. .h -tiedostoa. Buils-essentials on asennettu.

Nyt kuitenkin käy aina näin

Koodia: [Valitse]
le01@le:~/qt/harjoittelu3/qwtkoe04$ make
make: Kohteelle "first" ei tarvitse tehdä mitään.
le01@le:~/qt/harjoittelu3/qwtkoe04$


Eikä auta, vaikka .h -tiedostosta olisi kunka uusi versio tahansa.

Olen yrittänyt noin 143 kertaa varmistaa, että olen päätteellä samassa hakemistossa, jossa .h -tiedosto sijaitsee. Kaikki tiedostot ovat suoraan ajalta ennen käyttisversion vaihtoa, mutta jos puuttuvia tiedostoja olisi tai niiden nimet olisivat vaihtuneet, siitä pitäisi kai tulla erilainen virheilmoitus.

Missähän kohtaa teen virheen tai miten saisin uuden käännöksen?
« Viimeksi muokattu: 12.06.15 - klo:23.11 kirjoittanut teele »

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Vs: c++ -kääntäjä ei suostu kääntämään
« Vastaus #1 : 12.06.15 - klo:17.24 »
Olisikohan näin yksinkertaista, että pitää tuhota objektitiedostot ennen uudelleen kääntämistä:
Koodia: [Valitse]
rm *.o(Omalla vastuullasi).

Tosin helpompaa olisi veikata, jos näyttäisit makefilen sisällön ja sorsat.

nm

  • Käyttäjä
  • Viestejä: 16431
    • Profiili
Vs: c++ -kääntäjä ei suostu kääntämään
« Vastaus #2 : 12.06.15 - klo:19.15 »
Koneessa on Ubuntu 14.04 ja qt5-default ja libqwt. Ennen onnistuin kääntämään ohjelman uudestaan, jos vaikka muokkasin esim. .h -tiedostoa. Buils-essentials on asennettu.

Nyt kuitenkin käy aina näin

Koodia: [Valitse]
le01@le:~/qt/harjoittelu3/qwtkoe04$ make
make: Kohteelle "first" ei tarvitse tehdä mitään.
le01@le:~/qt/harjoittelu3/qwtkoe04$


Eikä auta, vaikka .h -tiedostosta olisi kunka uusi versio tahansa.

Onko kyseinen .h-tiedosto määritelty .pro-tiedoston HEADERS=... -listassa?

Käännöksen voi toki aina pakottaa uudelleen komentamalla ensin:

Koodia: [Valitse]
make clean

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Vs: c++ -kääntäjä ei suostu kääntämään
« Vastaus #3 : 12.06.15 - klo:23.03 »

Tässä alla on makefile. (laitoin .txt -päätteen lähettämistä varten)

Kun uudelleen asensin käyttiksen, kaikki meni tyhjälle levylle. Vanha versio oli 12.04, uusi on 14.04. Kopioin entiset käännöshakemistot samannimisinä, mutta vaihdoin käyttäjänimeä, enkä missään näekään vanhaa käyttäjänimeä. Kokeilin myös päätteessä komennolla cat .h -tiedosto, ja kyllä se näytti aina muuttuvan, kun sitä muokkasin, joten sen aikaleima pitäisi olla niin uusi, että olisi aihetta kääntää uudestaan.


teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Vs: c++ -kääntäjä ei suostu kääntämään
« Vastaus #4 : 12.06.15 - klo:23.11 »

Ratkaisu näyttäisi olevan uuden makefilen tekeminen qmake -qt4 -komennolla.  :) Vanha makefile ei siis toiminut, vaikka tiedostonimet kayttäjänimeä lukuun ottamatta olivat ihan samoja.

SuperOscar

  • Käyttäjä
  • Viestejä: 4065
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: c++ -kääntäjä ei suostu kääntämään
« Vastaus #5 : 16.06.15 - klo:10.13 »
Vanha makefile ei siis toiminut, vaikka tiedostonimet kayttäjänimeä lukuun ottamatta olivat ihan samoja.

Vertailikohan tiedostojen päiväyksiä, eli olisiko riittänyt:

Koodia: [Valitse]
touch makefile
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Vs: [ ratkaistu ] c++ -kääntäjä ei suostu kääntämään
« Vastaus #6 : 19.06.15 - klo:08.35 »
toinen tapa, jolla asia ratkeaa, on tosiaan

Koodia: [Valitse]
rm *.o
joka poistaa objektitiedostot. Jostain syystä ei näköjään riittänyt, että lähdetiedostoa eli .h -tiedostoa uusittiin.

Mutta sitten normaalissa käytössä .h -tiedoston muokkaaminen ja sitten sen jälkeen vain make riittää uuteen kääntämiseen.