Я работаю над модулем, который использует общую библиотеку, с которой, в свою очередь, связана статическая библиотека. Сборка общей библиотеки работает нормально и генерирует .so. Когда я пытаюсь использовать его в модуле, на этапе компиляции я получаю множество ошибок, большинство из которых основаны на stl (в частности, на stl) Ошибки выглядят так:
In file included from /usr/include/c++/4.3/list:68,
from /home/gayan/LHIMo/LHI/src/CalcEngine/include/JuncNodeInfo.h:11,
from /home/gayan/LHIMo/LHI/src/CalcEngine/include/RiverFlowParameter.h:11,
from Main.cpp:11:
/usr/include/c++/4.3/bits/stl_list.h:465:11: error: macro "catch" requires 3 arguments, but only 1 given
Это дано в большинстве мест, где используется список, вектор или карта.
Пожалуйста, помогите мне решить эту проблему.
Пример кода: "CalcEngine.h" в библиотеке:
#ifndef LHI_CALCENGINE_H_
#define LHI_CALCENGINE_H_
extern "C"{
#include <matrix2.h>
}
class CalcEngine{
public:
protected:
};
#endif /* LHI_CALCENGINE_H_ */
Main.cpp в приложении:
#include <iostream>
#include <CalcEngine.h>
#include <list> // The compilation fails as soon as this is added
int main(int argc, char** argv){
return -1;
}
Я чувствую, что это как-то связано с файлом matrix2.h, но не смог точно это определить. Файл можно найти здесь