LINUX.ORG.RU

[c++] undefined reference

 


0

0

В класса A создаётся и в дальнейшем используется объект класса B.

A::A()
{
      b = new B;
}

Раньше код компилился ок. Теперь добавил синглтоны в класс A и B - 
получается ошибка при линковке 

'In function A::someMethod(): undefined reference to B::method1()
collect2: ld returned 1 exit status'.

Она происходит при вызове

void A::someMethod()
{
       b->method1(); 
}

Синглтоны инициализируются каждый в своём .cpp файле.

В чём дело ?
anonymous

причём на моей машине всё собирается (mdk 10.0), а на другой (mdk 10.1) - нет.

anonymous
()
Ответ на: комментарий от anonymous

проект собирается autotools. так что обычно - ./configure && make

на той машине, что не собирается линковка выглядит

/bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common [ ... список либ и объектных файлов]

на моей

/bin/sh ../libtool --silent --tag=CXX --mode=link g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -O2 -fno-exceptions -fno-check-new -fno-common [ ... список либ и объектных файлов]

anonymous
()
Ответ на: комментарий от anonymous

на машине, где не комилится, каждый отдельный .cpp файл в проекте собирается make'ом с такими флагами:

-Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.