2

我目前在我的程序中使用三角形库。该库仅包含 .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

数据.cpp

 triangulate("pczAevn", &in, &mid, &vorout);

我已经让我的程序在 Ubuntu 上使用我的 Makefile,但我需要在 Windows 上运行我的程序。随时询问更多信息。

编辑#1: 如果你在 VS 中使用三角形库,你必须将以下指令放在 triangle.c 文件的顶部#define TRILIBRARY 现在它编译。非常感谢你的帮助。

4

1 回答 1

0

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

于 2012-09-11T19:09:46.417 回答