Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: teele - 12.06.15 - klo:17.13

Otsikko: [ ratkaistu ] c++ -kääntäjä ei suostu kääntämään
Kirjoitti: teele - 12.06.15 - klo:17.13
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?
Otsikko: Vs: c++ -kääntäjä ei suostu kääntämään
Kirjoitti: kamara - 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.
Otsikko: Vs: c++ -kääntäjä ei suostu kääntämään
Kirjoitti: nm - 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
Otsikko: Vs: c++ -kääntäjä ei suostu kääntämään
Kirjoitti: teele - 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.

Otsikko: Vs: c++ -kääntäjä ei suostu kääntämään
Kirjoitti: teele - 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.
Otsikko: Vs: c++ -kääntäjä ei suostu kääntämään
Kirjoitti: SuperOscar - 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
Otsikko: Vs: [ ratkaistu ] c++ -kääntäjä ei suostu kääntämään
Kirjoitti: teele - 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.