powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите с линковкой
20 сообщений из 20, страница 1 из 1
помогите с линковкой
    #33871354
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Не могу разобраться почему не находит ссылки на методы классов. Короче по порядку:
1. проект собирается make файлом под линуксом. Также есть make.specific в котором я опрделяю пути к библиотекам + имена библиотек.
2. есть файлы (к примеру) c1.cpp и c1.h, в которых определен статический метод ALLNI::ALLNIScope::getALLNIScope(int).
3. из этих файлов я делаю стат библиотеку libc1.a
4. в make.specific проекта прописываю путь до этой библиотеки, и она её НАХОДИТ!
5. есть файл в с2.cpp в котором я вызываю метод ALLNI::ALLNIScope::getALLNIScope(int).

И на этапе линковки получаю: с2.cpp:36: undefined reference to ALLNI::ALLNIScope::getALLNIScope(int)

Библиотеку она видет т.к. ошибки о том что библ не найдена нет. В тоже время если я задаю в make.specific имя не существующей библиотеки она тут же ругается.
Выкладываю файлы make и make.specific. Может быть попожет.

make.specific
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#
#  FESA framework		June  2004 .
#

ALLNI_ROOT_PATH=../../../

# specific path for include files (-I/...)
SPECIFIC_CXXFLAGS = -I$(ALLNI_ROOT_PATH)ALLNIScope/v0/SERVER -I$(ALLNI_ROOT_PATH)ALLNIScope/v0/RT -I$(ALLNI_ROOT_PATH)ALLNIScope/v0/GENERATED_CODE \
		    -I$(ALLNI_ROOT_PATH)ALLNICommon/INCLUDE

# specific path for your libs (-L/...)
SPECIFIC_LDFLAGS = -L$(ALLNI_ROOT_PATH)ALLNIScope/COMMON \
					-L $(ALLNI_ROOT_PATH)ALLNIScope/v0/SERVER \
					-L $(ALLNI_ROOT_PATH)ALLNICommon/LIB \
					-L /nfs/slnfs1/vol1/u1/vlezhebo/fesa2/ALLNICommon/LIB \
					-L /user/vlezhebo/fesa2/ALLNICommon/LIB \
					-L /user/vlezhebo/fesa2/ALLNICommon/INCLUDE

					
# Extra Libs which are shared by the Server and the Realtime processes
SPECIFIC_LDLIBSCOMMON = -lALLNIChannel -lALLNIScope
# Extra Libs which are specific to the Server process
SPECIFIC_LDLIBSSERVER = -lALLNIChannel -lALLNIScope
# Extra Libs which are specific to the Realtime process
#SPECIFIC_LDLIBSRT = -lniScope_32
SPECIFIC_LDLIBSRT = -lALLNIChannel -lALLNIScope


make :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
CPU=ppc4
ifndef FESA_VERSION
FESA_VERSION=CURRENT_RELEASE
endif

# FWK_VERSION_SYNC received as a parameter from the FesaSynchronize.pl, FesaCodeGen.pl, FesaSampleCodeGen.pl
FWK_VERSION_SYNC= 2 . 8 

# Include standard autorules
include /ps/src/dsc/co/Make.auto

# Include specific Makefile
include ./Make.specific

DEPLOY_DIR=	..

#
# JTC
#
JTC_HOME = /ps/local/$(CPU)
#JTC_LIBS = -L$(JTC_HOME)/lib -lJTC
#JTC_INCL = -I$(JTC_HOME)/include
JTC_LIBS = /ps/local/$(CPU)/lib/libJTC.a
JTC_INCL = -I/ps/local/$(CPU)/include

#
# ORBacus/E
#
OBE_HOME = /ps/local/$(CPU)
OBE_CLIENT_LIBS = -L$(OBE_HOME)/lib -lOBEClient
OBE_SERVER_LIBS = $(OBE_HOME)/lib/libOBEServer.a
OBE_INCL = -I$(OBE_HOME)/include -I$(OBE_HOME)/include/OBE
IDL2CPP  = $(OBE_HOME)/bin/eidl

#
# RDA
#
RDA_HOME = /ps/local/$(CPU)
#RDA_LIBS = -L$(RDA_HOME)/lib -lrda
#RDA_INCL = -I$(RDA_HOME) -I$(RDA_HOME)/rda
RDA_LIBS = /ps/local/$(CPU)/lib/librda.a
RDA_INCL = -I/ps/local/$(CPU) -I/ps/local/$(CPU)/rda


#
# PLC
#
PLC_LIBS = 
PLC_LDFLAGS = 

# Options for compiler and linker
CFLAGS =	-g -Wall -DFWK_VERSION_MACRO="\"$(FWK_VERSION_MACRO)\"" -I. -I../RT -I../SERVER -I../GENERATED_CODE -I../COMMON \
			-I.. -I../fesa -I/ps/local/$(CPU)/fesa/$(FESA_VERSION) -I/ps/local/$(CPU)/cmw/$(FESA_VERSION) -I/ps/local/$(CPU)/include $(JTC_INCL) $(RDA_INCL)
ifeq ($(CPU),ppc4)
CFLAGS += -mthreads
endif


LDFLAGS +=	-L.. -L../GENERATED_CODE -L../COMMON -L../RT -L../SERVER $(SPECIFIC_LDFLAGS) -L../fesaLib -L/ps/local/$(CPU)/fesa/$(FESA_VERSION) -L../fesaLib -L/ps/local/$(CPU)/cmw/$(FESA_VERSION) $(PLC_LDFLAGS) -L/user/fesa/ppc/sharedfesa \
			$(LOADLIBES) -L../../../ALLNICommon/LIB



#LDLIBS +=  -ldscrt -ltim -ltgv -ltgm -ldrvrutil -lerr -lerr_dummy $(XTRALIBS) -lbsd
# For the time being (till  2 . 7  is deployed) we links with a local version of ltim
# because of event payload transition between cytag nad user)
LDLIBS +=  -ldscrt /dsrc/co/lib/tim/libtim.$(CPU).a -ltgv -ltgm -ldrvrutil -lerr -lerr_dummy $(XTRALIBS) -lbsd

ifeq ($(CPU),L86)
LDLIBS += -lrt
else
LDLIBS += -mthreads
endif

LDLIBSCOMMON +=	-lALLNIChannelGeneratedPart.$(CPU)  -lALLNIChannelCommon.$(CPU) \
				-lFesaXMLParser -lFesaSorting -lFesaLogging -lFesaSync -lFesaDataStore $(PLC_LIBS) -lFesa \
				$(SPECIFIC_LDLIBSCOMMON)

ifeq ($(CPU),ppc4)
LDLIBSCOMMON += -lFesaLib.$(CPU)
endif

LDLIBSRT +=	-lALLNIChannelRT.$(CPU)  \
				-lFesaRT $(PLC_LIBS) -lFesaRecorder \
				$(RDA_LIBS) \
				$(SPECIFIC_LDLIBSRT)

LDLIBSSERVER +=	-lALLNIChannelServer.$(CPU) $(PLC_LIBS) \
				-lFesaPersistency -lFesaIntf -lcmwfesa -lFesaMW $(RDA_LIBS) $(OBE_SERVER_LIBS) $(JTC_LIBS)  \
				$(SPECIFIC_LDLIBSERVER)

CXXFLAGS +=	-Wno-deprecated $(CFLAGS) $(SPECIFIC_CXXFLAGS)

# Classes
CLSRCS =	deployALLNIChannel.cpp
CLSRCSH =
TSTSRCS =

# Test progs
TSTSRCS =

# All sources
CSRCS =
SRCS = 		$(CLSRCS) $(CLSRCSH) $(TSTSRCS) $(CSRCS)

# Deliverables
INSTFILES = 	$(LIB) $(HDRS)
TARGET =
LIB =
HDRS =	  	$(CLSRCS:.cpp=.h) $(CLSRCSH)

ifeq ($(FESA_VERSION),CURRENT_RELEASE)
	FWK_VERSION_MACRO=$(shell ls -l /ps/local/Linux/fesa/CURRENT_RELEASE | sed "s/^.*CURRENT_RELEASE -> //")
else
	ifeq ($(FESA_VERSION),NEXT_RELEASE)
		FWK_VERSION_MACRO=$(shell ls -l /ps/local/Linux/fesa/NEXT_RELEASE | sed "s/^.*NEXT_RELEASE -> //")
	else
		FWK_VERSION_MACRO=$(FESA_VERSION)
	endif
endif

#========================================================
vpath %.a .:../GENERATED_CODE:../RT:../SERVER:../COMMON
DEPENDLIBS = libALLNIChannelRT.$(CPU).a libALLNIChannelServer.$(CPU).a libALLNIChannelGeneratedPart.$(CPU).a libALLNIChannelCommon.$(CPU).a
all: checkVersion ALLNIChannel_M.$(CPU)
server: checkVersion ALLNIChannel_S.$(CPU)
rt: checkVersion ALLNIChannel_R.$(CPU)

ALLNIChannel_M.$(CPU).o: deployALLNIChannel.cpp
		$(COMPILE.cpp) -DEQP_RT -DEQP_SERVER $(CXXFLAGS) $< $(OUTPUT_OPTION)

ALLNIChannel_M.$(CPU): ALLNIChannel_M.$(CPU).o $(DEPENDLIBS)
		@-$(RM) $@ $(W)$@
		$(LINK.cc) -o $(W)$@ ALLNIChannel_M.$(CPU).o $(LDFLAGS) \
		$(LDLIBSSERVER) $(LDLIBSRT) $(LDLIBSCOMMON) $(LDLIBSRT) $(LDLIBSSERVER)  $(LDLIBSCOMMON) $(LDLIBSRT) $(LDLIBSSERVER) $(LDLIBS)

ALLNIChannel_R.$(CPU).o: deployALLNIChannel.cpp
		$(COMPILE.cpp) -DEQP_RT $(CXXFLAGS) $< $(OUTPUT_OPTION)

ALLNIChannel_R.$(CPU): ALLNIChannel_R.$(CPU).o $(DEPENDLIBS)
		@-$(RM) $@ $(W)$@
		$(LINK.cc) -o $(W)$@ ALLNIChannel_R.$(CPU).o \
		$(LDLIBSRT) $(LDLIBSCOMMON) $(LDLIBSRT) $(LDLIBSCOMMON) $(LDLIBSRT) $(LDLIBS)

ALLNIChannel_S.$(CPU).o: deployALLNIChannel.cpp
		$(COMPILE.cpp) -DEQP_SERVER $(CXXFLAGS) $< $(OUTPUT_OPTION)

ALLNIChannel_S.$(CPU): ALLNIChannel_S.$(CPU).o $(DEPENDLIBS)
		@-$(RM) $@ $(W)$@
		$(LINK.cc) -o $(W)$@ ALLNIChannel_S.$(CPU).o \
		$(LDLIBSSERVER) $(LDLIBSCOMMON)  $(LDLIBSSERVER) $(LDLIBSCOMMON) $(LDLIBSSERVER) $(LDLIBS)

clean:
		$(RM) *.o *.$(CPU) $(BAKS)

doc:
		doxygen dox.cfg

#additionnal rules
%.$(CPU): %.$(CPU).o
		$(LINK.cc) $^  $(LOADLIBES) $(LDLIBS) -o $@

%.$(CPU).o: %.cpp
		$(COMPILE.cpp) $(CXXFLAGS) $< $(OUTPUT_OPTION)

depend:
	makedepend -o .'$$(CPU)'.o -- -I. -I../GENERATED_CODE -I../COMMON -I../RT -I../SERVER $(SRCS) -- $^

checkVersion:
	@if [ $(FWK_VERSION_MACRO) != $(FWK_VERSION_SYNC) ]; then \
		echo "ERROR: Inconsistency between FESA version used for synchronization: $(FWK_VERSION_SYNC) and compilation: $(FWK_VERSION_MACRO)"; \
		exit  1 ; \
	fi

# DO NOT DELETE

Два дня уже мучаюсь. подскажите плиз.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33872913
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мэйк файлы не смотрел, долго разбираться, т.к. не указано, где происходит ошибка.

Посоветую 2 правила:
1. При линковке надежней будет сначала указывать объектники, а потом либы.
2. Либы надо перечеслять, начиная с "тяжелых". Т.е., если либа 1 юзает либу 2, то сначала надо добавлять либу 1, а потом 2. Иначе линковщик подумает, что 2-я либа, как бы и не нужна и забьет на нее. А когда опомниться, уже будет поздно.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873077
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh2. Либы надо перечеслять, начиная с "тяжелых". Т.е., если либа 1 юзает либу 2, то сначала надо добавлять либу 1, а потом 2. Иначе линковщик подумает, что 2-я либа, как бы и не нужна и забьет на нее. А когда опомниться, уже будет поздно.

Это ваши домыслы или опыт на конкретном линкере ???
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873100
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) Akh2. Либы надо перечеслять, начиная с "тяжелых". Т.е., если либа 1 юзает либу 2, то сначала надо добавлять либу 1, а потом 2. Иначе линковщик подумает, что 2-я либа, как бы и не нужна и забьет на нее. А когда опомниться, уже будет поздно.

Это ваши домыслы или опыт на конкретном линкере ???

Что вас смутило?
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873145
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсутствие упоминания инструмента и его версии, в присутствии которого ваше заявление смахивает на правило от тумбочки
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873184
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На опыте.

Данное правило, не помешает для всех линковщиков.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873384
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил - порядок подключекния в данном ничего не меняет. Похоже что она библиотеки находит а функции в них - нет. Т.к. если я вообще не указываю библиотеки, то ошибка та же самая. Хм.
Мои библиотеки libALLNIChannel.a и libALLNIScope.a . Конкретно функция ALLNI::ALLNIScope::getALLNIScope(int) содержиться в libALLNIScope.a.
Собирал я их (библиотеки) через "ar rc ..." и потом на всякий случай "ranlib ...".

Чё ж она не видит функции?
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873454
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может он берет откуда-нибудь старую версию библиотеки (может в других директориях валяется)?
Видит ли он вообще что-нибудь из нее?
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873522
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаю в чем у тебя дело, но у меня был подобный глюк
если есть 2 библиотеки lib1.a и lib2.a, программа использует функции из обеих библиотек, и одна библиотека(lib1.a) использует функции из другой(lib2.a) то функции из (lib2.a) не видны в программе.

Чтобы это исправить надо указать в коммандной строке библиотеку lib2.a 2 раза: перед lib1.a и после lib1.a

-llib2 -llib1 llib2

Возможно у тебя эта же проблема
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873541
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да не. файл в единственном экземпляре. кроме того не вимдит ни одной функции из библ.
при компилировании пишет :
........
-lALLNIChannelServer.ppc4 -lFesaPersistency -lFesaIntf -lcmwfesa
-lFesaMW /ps/local/ppc4/lib/librda.a /ps/local/ppc4/lib/libOBEServer.a
/ps/local/ppc4/lib/libJTC.a -lALLNIChannelRT.ppc4 -lFesaRT
-lFesaRecorder /ps/local/ppc4/lib/librda.a -lALLNIScope -lALLNIChannel
-lALLNIChannelGeneratedPart.ppc4 -lALLNIChannelCommon.ppc4 -lFesaXMLParser
-lFesaSorting -lFesaLogging -lFesaSync -lFesaDataStore -lFesa -lALLNIScope
-lALLNIScope -lFesaLib.ppc4 -lALLNIChannelRT.ppc4 -lFesaRT
-lFesaRecorder /ps/local/ppc4/lib/librda.a -lALLNIScope -lALLNIChannel
-lALLNIChannelServer.ppc4 -lFesaPersistency -lFesaIntf -lcmwfesa
........
значит млин видит и при сборке учитывает!

При просмотре через F3 в mc вижу что есть такая функция.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873547
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вообще если библиотеки используюут друг друга то надо внимательно просмотреть порядок их записи в коммандной строке
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873581
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KЯ не знаю в чем у тебя дело, но у меня был подобный глюк
если есть 2 библиотеки lib1.a и lib2.a, программа использует функции из обеих библиотек, и одна библиотека(lib1.a) использует функции из другой(lib2.a) то функции из (lib2.a) не видны в программе.

Чтобы это исправить надо указать в коммандной строке библиотеку lib2.a 2 раза: перед lib1.a и после lib1.a

-llib2 -llib1 llib2

Возможно у тебя эта же проблема

В принципе, в твоем случае достаточно было указать -llib1 -llib2.

При разборках с либой 1, линковщик запоминает, что не может связать. Потом ему дают вторую, где он находит нужные функции.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873764
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sbor.net/linux-doc/lib/prog/gcc27/gcc1-2.html#ss2.9
авторЕсть различие в том, где в комадной строке вы записываете эту опцию; линкер ищет обрабатываемые библиотеки и объектные файлы в порядке, в котором они указаны. Таким образом, `foo.o -lz bar.o' ищет библиотеку `z' после файла `foo.o', но перед `bar.o'. Если `bar.o' ссылается на функции в `z', эти функции не могут быть загружены.

А не наоборот? Я думал если foo.o ссылается на z тогда ошибка...
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873777
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно. Я про это уже сказал в самом начале.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33873785
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhИменно. Я про это уже сказал в самом начале.

сорри, гребу.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33874130
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh Sandro_KЯ не знаю в чем у тебя дело, но у меня был подобный глюк
если есть 2 библиотеки lib1.a и lib2.a, программа использует функции из обеих библиотек, и одна библиотека(lib1.a) использует функции из другой(lib2.a) то функции из (lib2.a) не видны в программе.

Чтобы это исправить надо указать в коммандной строке библиотеку lib2.a 2 раза: перед lib1.a и после lib1.a

-llib2 -llib1 llib2

Возможно у тебя эта же проблема

В принципе, в твоем случае достаточно было указать -llib1 -llib2.

При разборках с либой 1, линковщик запоминает, что не может связать. Потом ему дают вторую, где он находит нужные функции.

Тут возможно я действительно неправильно написал, я точно не помню там библиотек было много и некоторые приходилось вписывать по 2 раза потому что иначе линкер не видел некоторые функции, в каком бы порядке библиотеки не были вписаны
...
Рейтинг: 0 / 0
помогите с линковкой
    #33874151
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KТут возможно я действительно неправильно написал, я точно не помню там библиотек было много и некоторые приходилось вписывать по 2 раза потому что иначе линкер не видел некоторые функции, в каком бы порядке библиотеки не были вписаны

Вполне возможна такая ситуация. Если либы будут пользовать друг друга, например. :) Но я с такой ни разу сталкивался. По моему это изврат. ;)
...
Рейтинг: 0 / 0
помогите с линковкой
    #33874239
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh Sandro_KТут возможно я действительно неправильно написал, я точно не помню там библиотек было много и некоторые приходилось вписывать по 2 раза потому что иначе линкер не видел некоторые функции, в каком бы порядке библиотеки не были вписаны

Вполне возможна такая ситуация. Если либы будут пользовать друг друга, например. :) Но я с такой ни разу сталкивался. По моему это изврат. ;)

Я тоже считаю это извратом, но я помню что 2 дня возился с этим ничего понять не мог, пока знакомый мне не сказал чтоб я некоторые библиотеки включил 2 раза, после этого все откомпилилось, потом я еще долго пытался понять почему, толком так и не разобрался, но помоему если несколько библиотек используют функции из какой-то библиотеки то ее приходится вписывать 2 раза (возможно тут еще играет роль степень вложенности). Там было больше 20 библиотек с достаточно сложными зависимостями, но такого чтоб 2 библиотеки использовали друг друга там точно не было. Может кто-нибудь знает про это подробно?
...
Рейтинг: 0 / 0
помогите с линковкой
    #33874443
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KЯ тоже считаю это извратом, но я помню что 2 дня возился с этим ничего понять не мог, пока знакомый мне не сказал чтоб я некоторые библиотеки включил 2 раза, после этого все откомпилилось, потом я еще долго пытался понять почему, толком так и не разобрался, но помоему если несколько библиотек используют функции из какой-то библиотеки то ее приходится вписывать 2 раза (возможно тут еще играет роль степень вложенности). Там было больше 20 библиотек с достаточно сложными зависимостями, но такого чтоб 2 библиотеки использовали друг друга там точно не было. Может кто-нибудь знает про это подробно?

Я считаю, что надо подключать библиотеку только тогда, когда закончаться файлы, которые ее юзают. По всей видимости, линкер, когда до нее доходит, он смотрит, есть ли в ней что-нибудь полезное. Забирает то что надо и забывает про нее.

Суть включения 2 раза: первый раз он забирает, то что надо из нее, второй раз он забирает из нее, новые ссылки, появившиеся после просмотра других файлов, появившися после просмотра первого включения библиотеки. Ну, и конечно первое включение - получение имен, которые требуются самой библиотеки из других.
...
Рейтинг: 0 / 0
помогите с линковкой
    #33874541
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мля, похоже разобрался. Уже начал спецификации построения библиотек читать, как тут осенило. Создовал библиотеки (по примеру) с помощью одного компилятора (gcc) а прогу компилил другим (g++).

Спасибо всем.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите с линковкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]