Geany - linker

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Geany - linker

Post autor: next_user »

Witam

Do c++ używam Genay , ale czy mozna jakos zapisac regułe przy budowaniu aby kompilował wszystkie pliki cc ?

bo jeżeli dam regułę "*.cc" to niestety ale nie działa

i dalego musze kompilować z konsoli
Awatar użytkownika
borzole
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 127
Rejestracja: 10 sie 2010, 11:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Geany - linker

Post autor: borzole »

stwórz prosty makefile
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: beluosus »

@next_user: da się "*.cc":
viewtopic.php?t=113947#post671033
jednak wspomniany Makefile jest lepszym rozwiązaniem.
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

nie da sie, ponieważ wywala mi blędy przy kompilacji , dlatego napisalem ze sie nie da:)

a jak ten makefile zrobic ? moze jaksi link? bo patrzylem wczesniej za tym ale nie bardzo wiedzialem gdzie mam to umiescic i jak sie do tego odwołać
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

Zasady tworzenia prostego makefile (minuta googlowania):
http://www.programuj.com/artykuly/linux/makefile.php

Do tworzenia projektów dobrze nadają się narzędzia GNU autotools
http://drumlin.republika.pl/auto.html
Ale one na początek nie będą Ci potrzebne
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

tak, pogooglowalem , jak napisalem odp na forum, ale cos mi nie dziala

wchodze w folder gdzie znajduja sie pliki źrodlowe oraz plik 'makefile'

wywoluje polecenie 'make' ale nic to nei daje

tylko otrzymuje informacje
'make: *** Nie podano obiektów i nie znaleziono makefile. Stop.'

Kod: Zaznacz cały

CXX = g++ 
CFLAGS = -g -O # tutaj można dodawać inne flagi kompilatora
LIBS = -lm `pkg-config gtkmm-2.4 --cflags --libs` # tutaj można dodawać biblioteki

OBJ =\
    main.o \
    helloworld.o

all: main

clean:
       rm -f *.o test2
.c.o:
       $(CXX) -c $(INCLUDES) $(CFLAGS) $<

main: $(OBJ)
       $(CXX) $(OBJ) $(LIBS) -o test2
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

Jesteś pewien, że wykonujesz polecenie make w tym samym katalogu, w którym jest plik Makefile? Nazwij ten plik z dużej litery i spróbuj
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

dobra juz widzi, rozwiazalem problem z
'brakujacy sepearator' ale teraz wyskakuje ze nie widzi bibliotek potrzebnych do gtk
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

A masz je zainstalowane?

Kod: Zaznacz cały

apt-get install libgtk2.0-dev
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

tak mam zainstalowane bo jak kompiluje z konsoli wpisujac kazdy plik cc to normlanie dziala ;)

i jak np mial bym folder 'classes' i chcial do niego wrzucic pliki cc to w makefile musial bym to jakos konretnie zasugerowac ? czy wystarczy przy obj podac sciezke ?

Kod: Zaznacz cały

CXX=g++ 
CFLAGS=-g -O # tutaj można dodawać inne flagi kompilatora
LIBS= `pkg-config gtkmm-2.4 --cflags --libs` # tutaj można dodawać biblioteki

OBJ=\
    main.o \
    helloworld.o \
    jakisKatalog/nazwaobiektu.o 

all: main

clean:
    rm -f *.o test2
.cc.o:
    $(CXX) -c $(INCLUDES) $(CFLAGS) $<

main: $(OBJ)
    $(CXX) $(OBJ) $(LIBS) -o test2
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

Przy obj możesz podać ścieżkę i będzie OK.
A co do GTK to pokaż, jaki dokładnie błąd Ci zwraca kompilator
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

Kod: Zaznacz cały

In file included from main.cc:1:
helloworld.h:4:26: error: gtkmm/button.h: No such file or directory
helloworld.h:5:26: error: gtkmm/window.h: No such file or directory
main.cc:2:24: error: gtkmm/main.h: No such file or directory
In file included from main.cc:1:
to jest fragment

takie bledy mialem jezeli nie includowal mi biblioteki gtk daltego przypuszczam ze tutaj jest ten sam problem ;)
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

Kod: Zaznacz cały

.cc.o:
    $(CXX) -c $(INCLUDES) $(LIBS) $(CFLAGS) $<
I nie wiem, po co Ci $(INCLUDES), skoro nie jest nigdzie zainicjalizowane
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

szczerze to na szybko skopiwoalem przyklad i zmienilem tylko nazwe kopilatora z gcc na g++ oraz pliki, bo nie bardzo mialem czas zeby sie w tym zaglebic, i fakt, nigdzie nie jest incjalizowane includes, mimo to po wyrzuceniu tego nie dziala (bo raczej nie powinno to miec i tak znaczenia:) )
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

next_user pisze:[...] mimo to po wyrzuceniu tego nie dziala [...]
A zobacz, co dopisałem w poprzednim poście pogrubioną czcionką
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

no fakt, nie popatrzylem dokladnie, ale mam nstepny problem bo po przeniesieniu pliku do folderu wyskakuje mi komunikat

Kod: Zaznacz cały

g++  `pkg-config gtkmm-2.4 --cflags --libs`  -c  -g -O  main.cc
g++  `pkg-config gtkmm-2.4 --cflags --libs`  -c  -g -O  test/helloworld.cc
g++  main.o test/helloworld.o `pkg-config gtkmm-2.4 --cflags --libs`  -o test2
g++: test/helloworld.o: No such file or directory
make: *** [main] Błąd 1
teraz mam taka strukture

Kod: Zaznacz cały

main.cc
test/helloworld.cc

Kod: Zaznacz cały

CXX=g++ 
CFLAGS=-g -O # tutaj można dodawać inne flagi kompilatora
LIBS= `pkg-config gtkmm-2.4 --cflags --libs` # tutaj można dodawać biblioteki

OBJ=\
    main.o \
    test/helloworld.o

all: main

clean:
    rm -f *.o test2
.cc.o:
    $(CXX) $(LIBS) -c  $(CFLAGS) $<

main: $(OBJ)
    $(CXX) $(OBJ) $(LIBS) -o test2
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

Kod: Zaznacz cały

CXX=g++ 
CFLAGS=-g -O # tutaj można dodawać inne flagi kompilatora
LIBS= `pkg-config gtkmm-2.4 --cflags --libs` # tutaj można dodawać biblioteki

OBJ=\
    main.o \
    test/helloworld.o

all: main

clean:
    rm -f *.o test2
.cc.o:
    $(CXX) $(LIBS) -c  $(CFLAGS) $< -o $@

main: $(OBJ)
    $(CXX) $(OBJ) $(LIBS) -o test2
Pogrubiony tekst nakazuje zapisać kompilatorowi plik wynikowy w tym samym katalogu i o tej samej nazwie ale z rozszerzeniem .o
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

wielkie dzięki :)

tylko jeszcze jedno :) nie czysci mi plikow "*.o"
Awatar użytkownika
dawwin
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 202
Rejestracja: 18 kwie 2009, 09:16
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Geany - linker

Post autor: dawwin »

Zgaduję, że nie czyści tylko tych z katalogu test. Popraw linijkę dotyczącą czyszczenia na następującą

Kod: Zaznacz cały

rm -f *.o test/*.o test2
Moje programy - http://dawwin.users.sourceforge.net/
Nie pomagam na PW
next_user
Piegowaty Guziec
Piegowaty Guziec
Posty: 20
Rejestracja: 29 kwie 2010, 09:50
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Geany - linker

Post autor: next_user »

w ogole nie czyści ;( teraz tez nie czysci
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości