Problemy z linkowaniem w DEV C++

Forum dotyczące ogólnie pojętego programowania - algorytmów, struktur danych, narzędzi programistycznych, itp - głównie w kontekście komputerów PC.
ODPOWIEDZ
Awatar użytkownika
GrzesiekG
Użytkownik
Posty: 160
Rejestracja: 11 sie 2006, 8:06
Lokalizacja: Annopol
Kontakt:

Problemy z linkowaniem w DEV C++

Post autor: GrzesiekG » 27 gru 2009, 16:14

Witam. Mam problem z linkerem do Dev C++: mianowicie, przepisując kubek w kubek ze stronypliki nagłówkowe wyskakują mi błędy o treści: undefined reference to std::string::size lub ::operator/cout/outstream itd. Wszystko zapisałem w obrębie jednego projektu, ba w Borlandzie wszystko działa poprawnie. Proszę o pomoc.
PZDR
GrzesiekG

Awatar użytkownika
Luminofor
Użytkownik
Posty: 1373
Rejestracja: 27 lis 2007, 17:17
Lokalizacja: Polska

Post autor: Luminofor » 27 gru 2009, 20:39

Dodaj linijki (o ile już ich nie masz):

Kod: Zaznacz cały

#include <string>
#include <iostream>

using namespace std;

Awatar użytkownika
GrzesiekG
Użytkownik
Posty: 160
Rejestracja: 11 sie 2006, 8:06
Lokalizacja: Annopol
Kontakt:

Post autor: GrzesiekG » 29 gru 2009, 12:51

Niestety nic to nie pomogło. Cały czas te same błędy

Awatar użytkownika
Luminofor
Użytkownik
Posty: 1373
Rejestracja: 27 lis 2007, 17:17
Lokalizacja: Polska

Post autor: Luminofor » 29 gru 2009, 14:22

Skompiluj w innym IDE, a najlepiej pokaż ten kod.

Awatar użytkownika
GrzesiekG
Użytkownik
Posty: 160
Rejestracja: 11 sie 2006, 8:06
Lokalizacja: Annopol
Kontakt:

Post autor: GrzesiekG » 29 gru 2009, 14:31

Jak napisałem w pierwszym poscie, w odnośniku jest cały program ("pliki nagłówkowe"), nic nie dodawałem, nie odejmowałem, wszystko w DEVie okraszone błędami linkera tak, jak nadmieniłem. W Builderze wszystko ok.

superjerry
-
Posty: 11
Rejestracja: 07 sie 2006, 2:26
Lokalizacja: Lębork

Post autor: superjerry » 29 gru 2009, 16:55

Grzesiek przypuszczam, że chodzi o to, że w opcjach kompilatora Dev-Cpp (Narzędzia\Opcje kompilatora) brakuje załączonych bibliotek o których wspomniał Luminofor.
Może być też tak, że Dev-Cpp w jakiś sposób błędnie je załącza.
Spróbuj załączyć te biblioteki w opcjach kompilatora, a jak to nie pomoże to spróbuj skopiować do tego katalogu, w którym masz plik źródłowy biblioteki o które pyta się Dev-Cpp w logu, bądź te które podał Luminofor.

Której wersji Dev-Cpp używasz?

Pozdrawiam! Jarek

Awatar użytkownika
GrzesiekG
Użytkownik
Posty: 160
Rejestracja: 11 sie 2006, 8:06
Lokalizacja: Annopol
Kontakt:

Post autor: GrzesiekG » 29 gru 2009, 16:59

Witam ponownie. Wszystko zgoda, gdyby nie fakt, że przy kompilacji pojedynczych plików wszystko działa (problem występuje wyłącznie przy linkowaniu kilku plików)! Ver: 4.9.9.2

gjakubow
-
Posty: 13
Rejestracja: 19 lip 2007, 23:59
Lokalizacja: Sopot

Post autor: gjakubow » 30 gru 2009, 17:33

dziwne u mnie działa :)

zainstalowałem Dev-C++ 4.9.9.2 stworzyłem nowy projekt dodałem pliki: figura.cpp i figura.h i się wszystko skompilowało i z linkowało.

więc żeby można było Tobie pomóc to musisz podać więcej szczegółów.

odnośnie twojego ostatniego postu, gdzie dziwisz się że pojedyńczo pliki się kompilują, kompilacja i linkowanie to dwie różne rzeczy

http://library.thinkquest.org/C001341/t ... age=1&pn=t

tak wygląda makefile utworzony przez DEV-C++:

Kod: Zaznacz cały

# Project: ElportalTest1
# Makefile created by Dev-C++ 4.9.9.2

CPP  = g++.exe
CC   = gcc.exe
WINDRES = windres.exe
RES  = 
OBJ  = main.o figury.o $(RES)
LINKOBJ  = main.o figury.o $(RES)
LIBS =  -L"C:/Dev-Cpp/lib"  
INCS =  -I"C:/Dev-Cpp/include" 
CXXINCS =  -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include" 
BIN  = ElportalTest1.exe
CXXFLAGS = $(CXXINCS)  
CFLAGS = $(INCS)  
RM = rm -f

.PHONY: all all-before all-after clean clean-custom

all: all-before ElportalTest1.exe all-after


clean: clean-custom
	${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
	$(CPP) $(LINKOBJ) -o "ElportalTest1.exe" $(LIBS)

main.o: main.cpp
	$(CPP) -c main.cpp -o main.o $(CXXFLAGS)

figury.o: figury.cpp
	$(CPP) -c figury.cpp -o figury.o $(CXXFLAGS)

ODPOWIEDZ