使用三角形库时“未解析的外部符号_triangulate”

时间:2012-09-11 18:00:23

标签: c++ visual-studio-2010 linker lnk2019

我目前在我的程序中使用triangle library。该库仅包含.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);

我已经在Ubuntu上使用我的Makefile编写了我的程序,但是我需要在windows上运行我的程序。 请随时询问更多信息。

编辑#1: 如果将三角形库与VS一起使用,则必须将以下指令放在triangle.c文件#define TRILIBRARY之上。 现在它编译。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

链接器找不到“triangulateio readfile()”的定义,如果它在.c文件中定义,我的猜测是它没有构建。如果将它包含在项目中,它可以工作。