Я в настоящее время использую библиотека треугольников в моей программе. Библиотека содержит только файлы .c и .h (без .lib). Я получаю следующую ошибку в Visual Studio C ++ 2010:
1>data.obj : error LNK2019: unresolved external symbol _triangulate referenced in function "struct triangulateio __cdecl readfile(void)" (?readfile@@YA?AUtriangulateio@@XZ)
Файл заголовка моего data.cpp выглядит следующим образом:
#ifndef DATA_H
#define DATA_H
#include <WinSock2.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <string>
#include <time.h>
#include <GL/gl.h> //include the gl header file
#include <GL/glut.h> //include the glut header file
#include <GL/glu.h> //include the glut header file
#include <armadillo>
//Namespace
using namespace std;
using namespace arma;
extern "C"{
#ifdef SINGLE
#define REAL float
#else /* not SINGLE */
#define REAL double
#endif /* not SINGLE */
#include "triangle.h"}
triangulateio readfile();
#endif
Data.cpp
triangulate("pczAevn", &in, &mid, &vorout);
Я уже заставил свою программу работать с моим Makefile в Ubuntu, но мне нужно запустить мою программу в Windows.
Не стесняйтесь спрашивать дополнительную информацию.
РЕДАКТИРОВАНИЕ № 1:
Если вы используете библиотеку треугольников с VS, вы должны поместить следующую инструкцию поверх файла triangle.c #define TRILIBRARY
Теперь это скомпилировать. Огромное спасибо за помощь.
Компоновщик не может найти определение для «triangulateio readfile ()», если он определен в файле .c, я предполагаю, что он не построен. Если вы включите его в проект, это может сработать.
Других решений пока нет …