неопределенная ссылка на ' std:: ios base:: Init:: Init()'
Я пишу этот код для чтения 3 файлов, TM-размер квадратной матрицы, LER-нет. строк массива и из последнего значения определяют неквадратичную матрицу (ler/2)*2
Тогда... код считывается файлом с некоторыми отношениями, все они являются числами и присваиваются C[ler].
Тогда ... C [ler] присваивается B[ler/2] [2].
Эти координаты, в каждой строке, в B[ler/2] [2] присваиваются a и b.
A и b-это строка и столбец матрицы A[tm] [tm], куда нужно добавить 1.
Мой код выходит из строя, и я не вижу, в чем ошибка.
Когда я пытаюсь его скомпилировать, компилятор gcc-g-o MatSim MatSim.cpp подсказал:
/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::Init()'
/usr/include/c++/4.6/iostream:75: undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status
Также, когда я пытаюсь его скомпилировать, компилятор f77-o MatSim MatSim.cpp подсказал:
/tmp/cc6ewlkf.o: In function `__static_initialization_and_destruction_0(int, int)':
MatSim.cpp:(.text+0x17ad4a): undefined reference to `std::ios_base::Init::Init()'
MatSim.cpp:(.text+0x17ad4f): undefined reference to `std::ios_base::Init::~Init()'
collect2: ld returned 1 exit status
Решение
Основной проблемой была проблема библиотеки, скомпилировать код с помощью:
g++ -g -o MatSim MatSim.cpp -lstdc
Все еще не работает? Установить библиотеки:
sudo apt-get install g++-multilib
2 ответа:
Вы можете решить эту проблему несколькими способами:
- используйте
g++
вместоgcc
:g++ -g -o MatSim MatSim.cpp
- Добавить
-lstdc++
:gcc -g -o MatSim MatSim.cpp -lstdc++
- заменить
<string.h>
на<string>
Это проблема компоновщика,а не компилятора. Та же проблема рассматривается в вопросеошибка компоновщика iostream - он объясняет, что происходит.