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

Data.cpp

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

私はすでにUbuntuで私のMakefileを使ってプログラムを動作させましたが、Windowsでプログラムを実行する必要があります。詳細については、お気軽にお問い合わせください。

編集#1: VSでtriangleライブラリを使用する場合は、triangle.cファイルの上に次の命令を配置する必要があり#define TRILIBRARY ます。これでコンパイルされます。助けてくれてありがとう。

4

1 に答える 1

0

.c ファイルで定義されている場合、リンカは「triangulateio readfile()」の定義を見つけることができません。ビルドされていないと思います。プロジェクトに含めると、うまくいく可能性があります。

于 2012-09-11T19:09:46.417 に答える