Pomoc z makefile

Pomoc z makefile
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

Witajcie,
napisalem make pod program, i program mi sie kompiluje, ale sie nie uruchamia. gdzie jest problem?
Chciałbym, zeby sie uruchamial i pobieral dane z pliku tekst1.txt

Kopiuj

all : test1 test2
clean :
    @rm -f *~ zad1  *.ps

help :
    @echo ""
    @echo "Dostepne opcje: all, clean,"
    @echo "  zad1,  sito,"
    @echo "  test1, "
    @echo ""

zad1 : zad-1.c
    @gcc $(CFLAGS) -o zad1  zad1.c

test1 : zad1
    @echo ""
    @echo "Zadanie 1."
    @cat tekst1.txt
    @echo ""
    @./zad1

atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
1

Jeżeli kompiluje się bez problemu to raczej nie ma problemu z makefile. Widzisz jakieś błędy?


Failure of one test is a tragedy, failure of fifty is a statistic.
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

chodzi o to, że chciałbym wywolac otwarcie sie programu z poziomu make'a. gdy wpisuje w terminalu: make test1 wyskakuje brak reguł do wykonania dla obiektu test1

1
Kopiuj
.PHONY: all test1 help 

potem

Kopiuj
zad1 : zad-1.c
    @gcc $(CFLAGS) -o $@  $<
Driller12 napisał(a):

Chciałbym, zeby sie uruchamial i pobieral dane z pliku tekst1.txt

Kopiuj
./zad1 < tekst1.txt
atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
0

Jedyny problem jaki u mnie się pokazuje to:

Kopiuj
make: *** Brak reguł do zrobienia obiektu 'zad-1.c', wymaganego przez 'zad1'. Stop.

No bo rzeczywiście takie coś u Ciebie nie istnieje. Po usunięciu zad-1.c problemu nie ma i program kompiluje się bez problemu.


Failure of one test is a tragedy, failure of fifty is a statistic.
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

Teraz moj make wyglada tak:

Kopiuj
.PHONY: all test1 help

CFLAGS = -Wall

all : test1 test2
clean :
    @rm -f *~ zad1 zad2 *.ps

help :
    @echo ""
    @echo "Dostepne opcje: all, clean,"
    @echo "  zad1, zad2,  sito,"
    @echo "  test1, test2,"
    @echo ""

zad1 : zad1.c
    @gcc $(CFLAGS) -o $@ $<


test1 : zad1
    @echo ""
    @echo "zad1"
    @cat tekst1.txt
    @echo ""
    @./zad1 < tekst1.txt

po komendzie make test1 nadal to samo, sam program mi sie kompiluje normalnie. tylko chce by sie uruchamial

D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

a sam program wyglada tak

Kopiuj
#include <stdio.h>
#include <string.h>

void proc_in_stats();

int main()
{
  printf("Podaj tekst w którym chcesz zliczyć znaki:\n ");
  proc_in_stats();

  return 0;
}

void proc_in_stats()
{
  int char_count[ 128 ] = { 0 };
  char buff[ 64 ];
  int rv = 0;
  int i;
  size_t j, len;
  for( i = 0 ; i < 5 ; i += 1 ) {
    rv = scanf( "%s", buff );
    if( rv <= 0 ) {
      return;
    }
    else {
      len = strlen( buff );
      for( j = 0 ; j < len ; j += 1 ) {
        char_count[ (int)buff[ j ] ] += 1;
      }
    }
  }
  for( i = 0 ; i < 128 ; i += 1 ) {
    if( char_count[ i ] > 0 ) {
      printf( "\nZnak '%c' w Twoim tekscie wpisales %d razy.", (char)i, char_count[ i ]);
    }
  }
}


D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

uzywajac make'a chce uzyskac:
kompilacje programu(to juz mam)
uruchomienie programu za pomoca make'a
oraz to by pobieram dane z pliku txt

atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
1

Może zacznij pomału.
W main zostaw tylko printf - wtedy będziesz wiedział że program na 100% jest w porządku.
Makefile zrób taki:

Kopiuj
all: test1

zad1:
	@gcc -o main.o main.c

test1: zad1
	@./main.o

To powinno skompilować i odpalić ten program.

Wtedy możesz zacząć dodawać do tego makefile i patrzyć czy nadal działa czy też nie.


Failure of one test is a tragedy, failure of fifty is a statistic.
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

napisalem zwykly hello world i napisalem make taki jak mi podales i nie dziala mi kompilacja ani uruchamianie programu.. ;/

atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
0

Błędów zakładam że nie widzisz żadnych, w takim razie może zejdźmy jeszcze niżej - skompiluj ręcznie i spróbuj uruchomić (jeżeli oczywiście plik będzie istniał):

Kopiuj
gcc -Wall -pedantic main.c -o main.o

./main.o

Failure of one test is a tragedy, failure of fifty is a statistic.
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

tak, gdy zwyczajnie skompiluje i odpale to dziala jak powinien

atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
0

Spróbuj coś takiego:

Kopiuj
all:
	gcc -o main.o src/main.c
	./main.o

Choć zakładam że rezultat będzie taki sam co oznacza że problem musi być gdzieś indziej.


Failure of one test is a tragedy, failure of fifty is a statistic.
DR
  • Rejestracja:prawie 12 lat
  • Ostatnio:około godziny
  • Postów:1129
0

@Driller12: może i głupie, ale odpal z prawami administratora

D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

i jakiej komendy uzyc by to odpalic w make?

atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
0

Zwyczajnie robisz:

Kopiuj
sudo make all

i podajesz hasło roota.


Failure of one test is a tragedy, failure of fifty is a statistic.
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

sorry ale sie zagubilem... :o jakie haslo roota?

atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
0

Jesteś na Linuxie czy Windzie?


Failure of one test is a tragedy, failure of fifty is a statistic.
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

Linux

atmal
  • Rejestracja:prawie 8 lat
  • Ostatnio:4 dni
  • Postów:913
0

I nie używałeś nigdy np.

Kopiuj
sudo apt-get install...

?

Wtedy podajesz hasło i masz uprawnienia roota (administratora).


Failure of one test is a tragedy, failure of fifty is a statistic.
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

uzywalem :D juz wiem o co chodzi.. sprry ale jestem po 12 godzinach pracy :| ale nadal to samo ;\

D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0
Dregorio napisał(a):

@Driller12: może i głupie, ale odpal z prawami administratora

uzywam linuksa i w ustawieniach mam jako administrator..

D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

Probowalem teraz odpalic tego starego make'a przez

Kopiuj
sudo make test1

ale tez nie dziala..
kompilacja nadal dziala

edytowany 1x, ostatnio: Driller12
MO
  • Rejestracja:około 10 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:Tam gdzie jest (centy)metro...
0

W pliku Makefile wcięcia powinny być wykonane koniecznie tabulatorem a nie zestawem spacji.


Każdy problem w informatyce można rozwiązać, dodając kolejny poziom pośredniości,z wyjątkiem problemu zbyt dużej liczby warstw pośredniości — David J. Wheeler
D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0
Mokrowski napisał(a):

W pliku Makefile wcięcia powinny być wykonane koniecznie tabulatorem a nie zestawem spacji.

Niestety nic to nie zmienilo w tym roboczym make'u. w glownym mam wciecia zrobione tabulatorem...

D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0

ktos ma jeszcze jakis pomysl?

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:30 minut
0

all wymaga test2 które jest niezdefiniowane

D1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:40
0
Azarien napisał(a):

all wymaga test2 które jest niezdefiniowane
Niestety to nie pomaga..

0

Ok, to od początku.
Wykonaj

Kopiuj
make --version

i podeślij output.
Wykonaj też

Kopiuj
gcc --version

i też podeślij output.
A na koniec usuń znaki at (@) na początku komend.
Wykonaj

Kopiuj
make

A potem jeszcze na wszelki wypadek:

Kopiuj
make --trace

i oczywiście output.
Pomożemy.

M0
  • Rejestracja:około 7 lat
  • Ostatnio:około 7 lat
  • Lokalizacja:LOP
  • Postów:1
0

Spróbuj to wrzucić do programu Geany może masz coś nie tak z kompilatorem GCC.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)