Я использую cmake для сборки проекта и столкнулся с проблемой, когда он говорит, что не может найти символ для ссылки из файла предикатов.
Код: Выделить всё
unresolved external symbol orient3d referenced in function "public: static double __cdecl CyclopsTetra3D::Math::test_orient_3d(struct CyclopsTetra3D::Vector3 const &,struct CyclopsTetra3D::Vector3 const &,struct CyclopsTetra3D::Vector3 const &,struct CyclopsTetra3D::Vector3 const &)" (?test_orient_3d@Math@CyclopsTetra3D@@SANAEBUVector3@2@000@Z)
Код: Выделить всё
class Math {
public:
...
static real test_orient_3d(const Vector3& pa, const Vector3& pb, const Vector3& pc, const Vector3& pd) {
double a[3] = { pa.x, pa.y, pa.z };
double b[3] = { pb.x, pb.y, pb.z };
double c[3] = { pc.x, pc.y, pc.z };
double d[3] = { pd.x, pd.y, pd.z };
return orient3d(a, b, c, d);
}
Код: Выделить всё
orient3dПо сути, я просто пытаюсь создать функцию-оболочку в своей математической библиотеке для этого метода C, но у меня есть только базовое представление о том, как собрать файл CMakeLists.txt.
Что мне нужно изменить, чтобы этот проект можно было связать?
Изменить:
Вот простой файл cpp, вызывающий ошибку ссылки:
Код: Выделить всё
unresolved external symbol orient3d referenced in function "void __cdecl test2(void)" (?test2@@YAXXZ)
Код: Выделить всё
#include "predicates/predicates.h"
void test2() {
double a[3];
double b[3];
double c[3];
double d[3];
orient3d(a, b, c, d);
}
int main(int argc, char **argv)
{
test2();
return 0;
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... -c-program
Мобильная версия