Для создания программы я использую компьютер Linux x86_64.
Я связал общую библиотеку с исполняемым файлом. В моем проекте я вызываю функцию, которая объявила вектор внутри функции. Моя программа завершается при вызове этой функции.
При отладке через GDB я получаю следующие выходные данные.
Program received signal SIGILL, Illegal instruction.
0x00002aaaac4d2be7 in OC_Catalog_c::File_ToText (this=0x611aa0) at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:87
87 : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0)
(gdb) bt
0 0x00002aaaac4d2be7 in OC_Catalog_c::File_ToText (this=0x611aa0) at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:87
Это проблема компиляции моей общей библиотеки??
Намного ударился об это головой. Пожалуйста, помогите.
-Chaks
Добавление дополнительной информации для ваших запросов:
Да, функция, которую я вызываю File_ToText, является виртуальной функцией в классе OC_Catalog_c.
Переменная-член другого класса имеет объект класса OC_Catalog_c, который также имеет виртуальную функцию File_ToText. Используя этот объект, я вызываю функцию File_ToText OC_Catlog_c из виртуальной функции File_ToText.
Я покажу фрагмент кода:
class Oc_Catalog_c
{
virtual vector File_ToText (void) const;
}
class B
{
const OC_Catalog_c* m_pCatalog;
virtual vector File_ToText (void) const;
}
vector B::File_ToText( void ) const
{
vector a_SubData;
a_SubData = m_pCatalog->File_ToText();
}
Подробнее здесь: https://stackoverflow.com/questions/184 ... nstruction