2 qq 25107617 qq_25107617 于 2016.04.15 12:12 提问

ARToolkit在VS2010配置问题,链接时 LNK2019错误 (未解决) 50C

#include "stdafx.h"
#ifdef WIN32
#include
#endif
#include
#include
#ifndef __APPLE
_
#include
#define GLUT_DISABLE_ATEXIT_HACK

#include
#endif
#include
#include
#include
#include

//
// Camera configuration.
//
#ifdef _WIN32
char *vconf = "Data\WDM_camera_flipV.xml";
#else
char *vconf = "";
#endif

int xsize, ysize;
int thresh = 100;
int count = 0;

char *cparam_name = "Data/camera_para.dat";
ARParam cparam;

char *patt_name = "Data/patt.hiro";
int patt_id;
double patt_width = 80.0;
double patt_center[2] = {0.0, 0.0};
double patt_trans[3][4];

static void init(void);
static void cleanup(void);
static void keyEvent( unsigned char key, int x, int y);
static void mainLoop(void);
static void draw( void );

int main(int argc, char **argv)
{
glutInit(&argc, argv);
init();

arVideoCapStart();
argMainLoop( NULL, keyEvent, mainLoop );
return (0);

}

static void keyEvent( unsigned char key, int x, int y)
{
/* quit if the ESC key is pressed /
if( key == 0x1b ) {
printf("
** %f (frame/sec)\n", (double)count/arUtilTimer());
cleanup();
exit(0);
}
}

/* main loop */
static void mainLoop(void)
{
ARUint8 *dataPtr;
ARMarkerInfo *marker_info;
int marker_num;
int j, k;

/* grab a vide frame */
if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL ) {
    arUtilSleep(2);
    return;
}
if( count == 0 ) arUtilTimerReset();
count++;

argDrawMode2D();
argDispImage( dataPtr, 0,0 );

/* detect the markers in the video frame */
if( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) {
    cleanup();
    exit(0);
}

arVideoCapNext();

/* check for object visibility */
k = -1;
for( j = 0; j < marker_num; j++ ) {
    if( patt_id == marker_info[j].id ) {
        if( k == -1 ) k = j;
        else if( marker_info[k].cf < marker_info[j].cf ) k = j;
    }
}
if( k == -1 ) {
    argSwapBuffers();
    return;
}

/* get the transformation between the marker and the real camera */
arGetTransMat(&marker_info[k], patt_center, patt_width, patt_trans);

draw();

argSwapBuffers();

}

static void init( void )
{
ARParam wparam;

/* open the video path */
if( arVideoOpen( vconf ) < 0 ) exit(0);
/* find the size of the window */
if( arVideoInqSize(&xsize, &ysize) < 0 ) exit(0);
printf("Image size (x,y) = (%d,%d)\n", xsize, ysize);

/* set the initial camera parameters */
if( arParamLoad(cparam_name, 1, &wparam) < 0 ) {
    printf("Camera parameter load error !!\n");
    exit(0);
}
arParamChangeSize( &wparam, xsize, ysize, &cparam );
arInitCparam( &cparam );
printf("*** Camera Parameter ***\n");
arParamDisp( &cparam );

if( (patt_id=arLoadPatt(patt_name)) < 0 ) {
    printf("pattern load error !!\n");
    exit(0);
}

/* open the graphics window */
argInit( &cparam, 1.0, 0, 0, 0, 0 );

}

/* cleanup function called when program exits */
static void cleanup(void)
{
arVideoCapStop();
arVideoClose();
argCleanup();
}

static void draw( void )
{
double gl_para[16];
GLfloat mat_ambient[] = {0.0, 0.0, 1.0, 1.0};
GLfloat mat_flash[] = {0.0, 0.0, 1.0, 1.0};
GLfloat mat_flash_shiny[] = {50.0};
GLfloat light_position[] = {100.0,-200.0,200.0,0.0};
GLfloat ambi[] = {0.1, 0.1, 0.1, 0.1};
GLfloat lightZeroColor[] = {0.9, 0.9, 0.9, 0.1};

argDrawMode3D();
argDraw3dCamera( 0, 0 );
glClearDepth( 1.0 );
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);

/* load the camera transformation matrix */
argConvGlpara(patt_trans, gl_para);
glMatrixMode(GL_MODELVIEW);
glLoadMatrixd( gl_para );

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambi);
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightZeroColor);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_flash);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_flash_shiny);  
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMatrixMode(GL_MODELVIEW);
glTranslatef( 0.0, 0.0, 25.0 );
glutSolidCube(50.0);
glDisable( GL_LIGHTING );

glDisable( GL_DEPTH_TEST );

}

1>ClCompile:
1> stdafx.cpp
1> ARFirstApplication.cpp
1>libARgsubd.lib(gsub.obj) : error LNK2019: 无法解析的外部符号 ___glutCreateWindowWithExit@8,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用
1>C:\Users\Yang\Documents\Visual Studio 2010\Projects\ARFirstApplication\Debug\ARFirstApplication.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:01.83
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

3个回答

zanfeng
zanfeng   2016.04.17 12:47

检查头文件包含是否正确,lib库是否包含的正确。其他的没有啥了。

qq_25107617
qq_25107617 第一次用,我把图发在楼下,麻烦看看对不对
大约 2 年之前 回复
qq_25107617
qq_25107617   2016.04.18 12:11

图片说明
图片说明
附加依赖项:libARd.lib
libARvideod.lib
libARgsubd.lib
libARgsub_lited.lib
libARgsubUtild.lib
libARvrmld.lib
libARMultid.lib
Opengl32.lib
opengl.lib
glu.lib
Glu32.lib
glut.lib
glut32.lib
GLAUX.LIB
libAR.lib
libARgsub_lite.lib
libARgsubUtil.lib
libARMulti.lib
libARvideo.lib
libARvrml.lib
我把lib文件里的都写上去了

zanfeng
zanfeng   2016.04.18 12:25

你直接COPY到debug目录

sym60123
sym60123 回复qq_25107617: 解决了吗?我也是卡在这了
大约 2 年之前 回复
qq_25107617
qq_25107617 能详细点吗,谢谢。 或者能加我Q Q 515546341详细说吗? 万分感谢
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
命令行编译链接,出现LNK2019错误,怎样解决?
返回首页 - 当前索引 - 主  题:命令行编译链接,出现LNK2019错误,怎样解决?在visual studio环境下编译链接通过,但我在命令行模式下连接出现如下错误:/out:test01.exetest01.objtest01.obj : error LNK2019: 无法解析的外部符号 __imp__MessageBoxA@16 ,该符号在函数 _MessageBox
【学习ARToolkit小记之五】 解决“error LNK2019: 无法解析的外部符号 ___glutCreateWindowWithExit@8”错误
接上一则:ARToolkit(4):ARToolkit开发原则(Development Principles)(http://blog.csdn.net/qingyang8513/article/details/45332635) 一、开发环境 1、操作系统:Windows 7(64位) 2、编程环境:Microsoft Visual Studio 2010 3、ARToolkit
vs2010 error link2019无法解析的外部符号
vs2010 error link2019无法解析的外部符号 一、动机 自己写的Dll库,然后对其进行引用,出现了题中所示的错误。使用了以下步骤的解决办法。 1、引入dll的头文件:属性-》c/c++-》常规-》附加包含目录,在框中加入dll的头文件 2、引入lib库目录:属性-》链接器-》常规-》附加库目录,在框中加入生成dll对应的lib库目录(注意这里加入的是文件目录) 3、引
VS2010关于调用ffmpeg借口出错
win7 下开发视频服务器,用到ffmpeg,debug版本运行正常,切换到release时,出现"0x00905a4d 处未处理的异常: 0xC0000005: 读取位置 0x00905a4d 时发生访问冲突",原以为是jrtplib得问题,鼓捣半天才发现是ffmpeg. 用一个很小的测试程序验证,在av_register_all处就崩溃.鸟! 难道是用mingw生成ffmpeg时有调
VS链接器工具错误 LNK2019:无法解析的外部符号
常见的问题 以下是一些导致 LNK2019 的常见问题: 未链接的对象文件或包含符号定义的库。 在 Visual Studio 中,验证包含定义源代码文件是生成,分别链接为项目的一部分。 在命令行中,验证编译时包含定义的源文件,并且所生成对象文件包含在要链接的文件列表。 符号的声明不拼写与符号的定义相同。 验证在声明和定义,使用正确的拼写和大小写,并且是使用或调用该符
【学习ARToolkit小记之初】 ARToolkit在VS2010(Win7 64位)下的配置及第一个开发程序的编译与运行
学习ARToolkit已经快一个月了,刚刚接触时只是按照官网教程中的步骤一步一步的学习,其中遇到了许多问题,如OpenGL在64位Win7下的配置问题、ARtoolkit在64位Win7下的配置问题、如何使用VS2010创建一个自己的ARToolkit项目问题及创建过程中的出错问题等等。学习的过程中也从网上搜索的大量的论坛资料,可是大都说的比较含糊,没有一个比较系统的总结,也许大家是在同样的问题过
MSDN对链接器工具错误 LNK2019的解释
链接器无法找到函数“function”中使用的外部符号“symbol”的定义。 有许多问题可能会导致此错误。 本主题将帮助你确定原因并找到解决方案。 外部符号是你在源代码中用于引用在另一对象或库文件中定义的内容的声明名称,例如,一个外部函数或全局变量。 链接器负责解析每个对象文件中链接到应用程序或 DLL 的所有外部符号引用。 如果链接器无法在任何链接的文件中找到外部符号的匹配定义,那么
C++链接器工具错误:LNK2001, LNK2019
 这是归属于链接器工具错误 这一类。无法解析的外部符号“symbol”代码引用了链接器无法在库和对象文件中找到的内容(如函数、变量或标签)。可能的原因 代码请求的内容不存在(例如,符号拼写错误或使用错误的大小写)。 代码请求的内容错误(使用的是混合版本的库,一些库来自产品的一个版本,而其他则来自另一个版本)。 该错误信息之后为致命错误 LNK1120
ARToolkit在VS2010(Win7 64位)下的配置及第一个开发程序的编译与运行
刚刚接触到ARToolkit,以一个初学者的身份总结了学习过程之初会遇到的问题,如ARToolkit在Win7 64位系统和VS2010下的配置问题、利用ARToolkit创建自己的项目工程等。
【学习ARToolkit小记之一】 ARToolkit配置设置,解决64位操作系统运行sln生成错误
关于ARToolkit,最近在学习相关的东西,最初的系统配置就出现了问题,可谓小白的悲哀。不过,原因也不是全部出现在自身的身上,因为,官网及其他网站资料的配置方法都是基于windows32位系统和VC6.0或者VS2008的配置,按照权威的步骤最终实验多次都还是出现了同样的错误。生成-->批生产,结果48个失败(VS2010),查找了好几天,终于找出了原因,问题就出在我的是Windows7 64位