ARToolKit | Mailing List Archive |
![]() |
From: | Ralph Wiggum <wiggum2003@y ........> | Received: | Mar 1, 2005 |
To | artoolkit@h .................. | ||
Subject: | change library for linking | ||
--0-747751949-1109706395=:37852 Content-Type: text/plain; charset=us-ascii Hi all, Having trouble with linking simple.c in artoolkit version 2.65. It compiles fine but won't link. Some of the comments in the program lead me to believe that I need to change what library is used for linking but I don't know how to change the library used (I'm using microsoft visual C++ version 6.0). Comments like: /* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA in your compile preprocessor options. */ -and- /* Win32 has an annoying issue where there are multiple C run-time libraries (CRTs). If the executable is linked with a different CRT from the GLUT DLL, the GLUT DLL will not share the same CRT static data seen by the executable. In particular, atexit callbacks registered in the executable will not be called if GLUT calls its (different) exit routine). GLUT is typically built with the "/MD" option (the CRT with multithreading DLL support), but the Visual C++ linker default is "/ML" (the single threaded CRT). One workaround to this issue is requiring users to always link with the same CRT as GLUT is compiled with. That requires users supply a non-standard option. GLUT 3.7 has its own built-in workaround where the executable's "exit" function pointer is covertly passed to GLUT. GLUT then calls the executable's exit function pointer to ensure that any "atexit" calls registered by the application are called if GLUT needs to exit. Note that the __glut*WithExit routines should NEVER be called directly. To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ These are the errors I get in linking: Linking... simple.obj : error LNK2001: unresolved external symbol _argMainLoop simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStart simple.obj : error LNK2001: unresolved external symbol _arUtilTimer simple.obj : error LNK2001: unresolved external symbol _arGetTransMatCont simple.obj : error LNK2001: unresolved external symbol _arGetTransMat simple.obj : error LNK2001: unresolved external symbol _argSwapBuffers simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapNext simple.obj : error LNK2001: unresolved external symbol _arDetectMarker simple.obj : error LNK2001: unresolved external symbol _argDispImage simple.obj : error LNK2001: unresolved external symbol _argDrawMode2D simple.obj : error LNK2001: unresolved external symbol _arUtilTimerReset simple.obj : error LNK2001: unresolved external symbol _arUtilSleep simple.obj : error LNK2001: unresolved external symbol __imp__arVideoGetImage simple.obj : error LNK2001: unresolved external symbol _argInit simple.obj : error LNK2001: unresolved external symbol _arLoadPatt simple.obj : error LNK2001: unresolved external symbol _arParamDisp simple.obj : error LNK2001: unresolved external symbol _arInitCparam simple.obj : error LNK2001: unresolved external symbol _arParamChangeSize simple.obj : error LNK2001: unresolved external symbol _arParamLoad simple.obj : error LNK2001: unresolved external symbol __imp__arVideoInqSize simple.obj : error LNK2001: unresolved external symbol __imp__arVideoOpen simple.obj : error LNK2001: unresolved external symbol _argCleanup simple.obj : error LNK2001: unresolved external symbol __imp__arVideoClose simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStop simple.obj : error LNK2001: unresolved external symbol __imp__glDisable@4 simple.obj : error LNK2001: unresolved external symbol _glutSolidTeapot@8 simple.obj : error LNK2001: unresolved external symbol __imp__glTranslatef@1 . simple.obj : error LNK2001: unresolved external symbol __imp__glMaterialfv@1 . simple.obj : error LNK2001: unresolved external symbol __imp__glLightfv@1 . simple.obj : error LNK2001: unresolved external symbol __imp__glLoadMatrixd@4 simple.obj : error LNK2001: unresolved external symbol __imp__glMatrixMode@4 simple.obj : error LNK2001: unresolved external symbol _argConvGlpara simple.obj : error LNK2001: unresolved external symbol __imp__glDepthFunc@4 simple.obj : error LNK2001: unresolved external symbol __imp__glEnable@4 simple.obj : error LNK2001: unresolved external symbol __imp__glClear@4 simple.obj : error LNK2001: unresolved external symbol __imp__glClearDepth@8 simple.obj : error LNK2001: unresolved external symbol _argDraw3dCamera simple.obj : error LNK2001: unresolved external symbol _argDrawMode3D Debug/simple.exe : fatal error LNK1120: 38 unresolved externals Error executing link.exe. simple.exe - 39 error(s), 0 warning(s) Any help would be much appreciated. --------------------------------- Do you Yahoo!? Yahoo! Mail - Find what you need with new enhanced search. Learn more. --0-747751949-1109706395=:37852 Content-Type: text/html; charset=us-ascii <DIV>Hi all,</DIV> <DIV>Having trouble with linking simple.c in artoolkit version 2.65. It compiles fine but won't link. Some of the comments in the program lead me to believe that I need to change what library is used for linking but I don't know how to change the library used (I'm using microsoft visual C++ version 6.0). Comments like:</DIV> <DIV> </DIV> <DIV>/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA<BR> in your compile preprocessor options. */</DIV> <DIV> </DIV> <DIV>-and-</DIV> <DIV> </DIV> <DIV>/* Win32 has an annoying issue where there are multiple C run-time<BR> libraries (CRTs). If the executable is linked with a different CRT<BR> from the GLUT DLL, the GLUT DLL will not share the same CRT static<BR> data seen by the executable. In particular, atexit callbacks registered<BR> in the executable will not be called if GLUT calls its (different)<BR> exit routine). GLUT is typically built with the<BR> "/MD" option (the CRT with multithreading DLL support), but the Visual<BR> C++ linker default is "/ML" (the single threaded CRT).</DIV> <DIV> One workaround to this issue is requiring users to always link with<BR> the same CRT as GLUT is compiled with. That requires users supply a<BR> non-standard option. GLUT 3.7 has its own built-in workaround where<BR> the executable's "exit" function pointer is covertly passed to GLUT.<BR> GLUT then calls the executable's exit function pointer to ensure that<BR> any "atexit" calls registered by the application are called if GLUT<BR> needs to exit.</DIV> <DIV> Note that the __glut*WithExit routines should NEVER be called directly.<BR> To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */</DIV> <DIV> </DIV> <DIV>These are the errors I get in linking:</DIV> <DIV> </DIV> <DIV>Linking...<BR>simple.obj : error LNK2001: unresolved external symbol _argMainLoop<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStart<BR>simple.obj : error LNK2001: unresolved external symbol _arUtilTimer<BR>simple.obj : error LNK2001: unresolved external symbol _arGetTransMatCont<BR>simple.obj : error LNK2001: unresolved external symbol _arGetTransMat<BR>simple.obj : error LNK2001: unresolved external symbol _argSwapBuffers<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapNext<BR>simple.obj : error LNK2001: unresolved external symbol _arDetectMarker<BR>simple.obj : error LNK2001: unresolved external symbol _argDispImage<BR>simple.obj : error LNK2001: unresolved external symbol _argDrawMode2D<BR>simple.obj : error LNK2001: unresolved external symbol _arUtilTimerReset<BR>simple.obj : error LNK2001: unresolved external symbol _arUtilSleep<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoGetImage<BR>simple.obj : error LNK2001: unresolved external symbol _argInit<BR>simple.obj : error LNK2001: unresolved external symbol _arLoadPatt<BR>simple.obj : error LNK2001: unresolved external symbol _arParamDisp<BR>simple.obj : error LNK2001: unresolved external symbol _arInitCparam<BR>simple.obj : error LNK2001: unresolved external symbol _arParamChangeSize<BR>simple.obj : error LNK2001: unresolved external symbol _arParamLoad<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoInqSize<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoOpen<BR>simple.obj : error LNK2001: unresolved external symbol _argCleanup<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoClose<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStop<BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glDisable@4 ">__imp__glDisable@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:_glutSolidTeapot@8 ">_glutSolidTeapot@8 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glTranslatef@1 .">__imp__glTranslatef@1 .</A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glMaterialfv@1 .">__imp__glMaterialfv@1 .</A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glLightfv@1 .">__imp__glLightfv@1 .</A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glLoadMatrixd@4 ">__imp__glLoadMatrixd@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glMatrixMode@4 ">__imp__glMatrixMode@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol _argConvGlpara<BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glDepthFunc@4 ">__imp__glDepthFunc@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glEnable@4 ">__imp__glEnable@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glClear@4 ">__imp__glClear@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glClearDepth@8 ">__imp__glClearDepth@8 </A><BR>simple.obj : error LNK2001: unresolved external symbol _argDraw3dCamera<BR>simple.obj : error LNK2001: unresolved external symbol _argDrawMode3D<BR>Debug/simple.exe : fatal error LNK1120: 38 unresolved externals<BR>Error executing link.exe.</DIV> <DIV>simple.exe - 39 error(s), 0 warning(s)</DIV> <DIV> </DIV> <DIV>Any help would be much appreciated.</DIV><p> <hr size=1>Do you Yahoo!?<br> Yahoo! Mail - Find what you need with new enhanced search. <a href="http://us.rd.yahoo.com/evt=29917/*http://info.mail.yahoo.com/mail_250">Learn more.</a> --0-747751949-1109706395=:37852-- |
From: | Ralph Wiggum <wiggum2003@y ........> | Received: | Mar 1, 2005 |
To | artoolkit@h .................. | ||
Subject: | change library for linking | ||
--0-1276707054-1109706504=:36616 Content-Type: text/plain; charset=us-ascii Hi all, Having trouble with linking simple.c in artoolkit version 2.65. It compiles fine but won't link. Some of the comments in the program lead me to believe that I need to change what library is used for linking but I don't know how to change the library used (I'm using microsoft visual C++ version 6.0). Comments like: /* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA in your compile preprocessor options. */ -and- /* Win32 has an annoying issue where there are multiple C run-time libraries (CRTs). If the executable is linked with a different CRT from the GLUT DLL, the GLUT DLL will not share the same CRT static data seen by the executable. In particular, atexit callbacks registered in the executable will not be called if GLUT calls its (different) exit routine). GLUT is typically built with the "/MD" option (the CRT with multithreading DLL support), but the Visual C++ linker default is "/ML" (the single threaded CRT). One workaround to this issue is requiring users to always link with the same CRT as GLUT is compiled with. That requires users supply a non-standard option. GLUT 3.7 has its own built-in workaround where the executable's "exit" function pointer is covertly passed to GLUT. GLUT then calls the executable's exit function pointer to ensure that any "atexit" calls registered by the application are called if GLUT needs to exit. Note that the __glut*WithExit routines should NEVER be called directly. To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ These are the errors I get in linking: Linking... simple.obj : error LNK2001: unresolved external symbol _argMainLoop simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStart simple.obj : error LNK2001: unresolved external symbol _arUtilTimer simple.obj : error LNK2001: unresolved external symbol _arGetTransMatCont simple.obj : error LNK2001: unresolved external symbol _arGetTransMat simple.obj : error LNK2001: unresolved external symbol _argSwapBuffers simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapNext simple.obj : error LNK2001: unresolved external symbol _arDetectMarker simple.obj : error LNK2001: unresolved external symbol _argDispImage simple.obj : error LNK2001: unresolved external symbol _argDrawMode2D simple.obj : error LNK2001: unresolved external symbol _arUtilTimerReset simple.obj : error LNK2001: unresolved external symbol _arUtilSleep simple.obj : error LNK2001: unresolved external symbol __imp__arVideoGetImage simple.obj : error LNK2001: unresolved external symbol _argInit simple.obj : error LNK2001: unresolved external symbol _arLoadPatt simple.obj : error LNK2001: unresolved external symbol _arParamDisp simple.obj : error LNK2001: unresolved external symbol _arInitCparam simple.obj : error LNK2001: unresolved external symbol _arParamChangeSize simple.obj : error LNK2001: unresolved external symbol _arParamLoad simple.obj : error LNK2001: unresolved external symbol __imp__arVideoInqSize simple.obj : error LNK2001: unresolved external symbol __imp__arVideoOpen simple.obj : error LNK2001: unresolved external symbol _argCleanup simple.obj : error LNK2001: unresolved external symbol __imp__arVideoClose simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStop simple.obj : error LNK2001: unresolved external symbol __imp__glDisable@4 simple.obj : error LNK2001: unresolved external symbol _glutSolidTeapot@8 simple.obj : error LNK2001: unresolved external symbol __imp__glTranslatef@1 . simple.obj : error LNK2001: unresolved external symbol __imp__glMaterialfv@1 . simple.obj : error LNK2001: unresolved external symbol __imp__glLightfv@1 . simple.obj : error LNK2001: unresolved external symbol __imp__glLoadMatrixd@4 simple.obj : error LNK2001: unresolved external symbol __imp__glMatrixMode@4 simple.obj : error LNK2001: unresolved external symbol _argConvGlpara simple.obj : error LNK2001: unresolved external symbol __imp__glDepthFunc@4 simple.obj : error LNK2001: unresolved external symbol __imp__glEnable@4 simple.obj : error LNK2001: unresolved external symbol __imp__glClear@4 simple.obj : error LNK2001: unresolved external symbol __imp__glClearDepth@8 simple.obj : error LNK2001: unresolved external symbol _argDraw3dCamera simple.obj : error LNK2001: unresolved external symbol _argDrawMode3D Debug/simple.exe : fatal error LNK1120: 38 unresolved externals Error executing link.exe. simple.exe - 39 error(s), 0 warning(s) Any help would be much appreciated. --------------------------------- Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. --0-1276707054-1109706504=:36616 Content-Type: text/html; charset=us-ascii <DIV>Hi all,</DIV> <DIV>Having trouble with linking simple.c in artoolkit version 2.65. It compiles fine but won't link. Some of the comments in the program lead me to believe that I need to change what library is used for linking but I don't know how to change the library used (I'm using microsoft visual C++ version 6.0). Comments like:</DIV> <DIV> </DIV> <DIV>/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA<BR> in your compile preprocessor options. */</DIV> <DIV> </DIV> <DIV>-and-</DIV> <DIV> </DIV> <DIV>/* Win32 has an annoying issue where there are multiple C run-time<BR> libraries (CRTs). If the executable is linked with a different CRT<BR> from the GLUT DLL, the GLUT DLL will not share the same CRT static<BR> data seen by the executable. In particular, atexit callbacks registered<BR> in the executable will not be called if GLUT calls its (different)<BR> exit routine). GLUT is typically built with the<BR> "/MD" option (the CRT with multithreading DLL support), but the Visual<BR> C++ linker default is "/ML" (the single threaded CRT).</DIV> <DIV> One workaround to this issue is requiring users to always link with<BR> the same CRT as GLUT is compiled with. That requires users supply a<BR> non-standard option. GLUT 3.7 has its own built-in workaround where<BR> the executable's "exit" function pointer is covertly passed to GLUT.<BR> GLUT then calls the executable's exit function pointer to ensure that<BR> any "atexit" calls registered by the application are called if GLUT<BR> needs to exit.</DIV> <DIV> Note that the __glut*WithExit routines should NEVER be called directly.<BR> To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */</DIV> <DIV> </DIV> <DIV>These are the errors I get in linking:</DIV> <DIV> </DIV> <DIV>Linking...<BR>simple.obj : error LNK2001: unresolved external symbol _argMainLoop<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStart<BR>simple.obj : error LNK2001: unresolved external symbol _arUtilTimer<BR>simple.obj : error LNK2001: unresolved external symbol _arGetTransMatCont<BR>simple.obj : error LNK2001: unresolved external symbol _arGetTransMat<BR>simple.obj : error LNK2001: unresolved external symbol _argSwapBuffers<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapNext<BR>simple.obj : error LNK2001: unresolved external symbol _arDetectMarker<BR>simple.obj : error LNK2001: unresolved external symbol _argDispImage<BR>simple.obj : error LNK2001: unresolved external symbol _argDrawMode2D<BR>simple.obj : error LNK2001: unresolved external symbol _arUtilTimerReset<BR>simple.obj : error LNK2001: unresolved external symbol _arUtilSleep<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoGetImage<BR>simple.obj : error LNK2001: unresolved external symbol _argInit<BR>simple.obj : error LNK2001: unresolved external symbol _arLoadPatt<BR>simple.obj : error LNK2001: unresolved external symbol _arParamDisp<BR>simple.obj : error LNK2001: unresolved external symbol _arInitCparam<BR>simple.obj : error LNK2001: unresolved external symbol _arParamChangeSize<BR>simple.obj : error LNK2001: unresolved external symbol _arParamLoad<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoInqSize<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoOpen<BR>simple.obj : error LNK2001: unresolved external symbol _argCleanup<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoClose<BR>simple.obj : error LNK2001: unresolved external symbol __imp__arVideoCapStop<BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glDisable@4 ">__imp__glDisable@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:_glutSolidTeapot@8 ">_glutSolidTeapot@8 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glTranslatef@1 .">__imp__glTranslatef@1 .</A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glMaterialfv@1 .">__imp__glMaterialfv@1 .</A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glLightfv@1 .">__imp__glLightfv@1 .</A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glLoadMatrixd@4 ">__imp__glLoadMatrixd@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glMatrixMode@4 ">__imp__glMatrixMode@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol _argConvGlpara<BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glDepthFunc@4 ">__imp__glDepthFunc@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glEnable@4 ">__imp__glEnable@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glClear@4 ">__imp__glClear@4 </A><BR>simple.obj : error LNK2001: unresolved external symbol <A href="mailto:__imp__glClearDepth@8 ">__imp__glClearDepth@8 </A><BR>simple.obj : error LNK2001: unresolved external symbol _argDraw3dCamera<BR>simple.obj : error LNK2001: unresolved external symbol _argDrawMode3D<BR>Debug/simple.exe : fatal error LNK1120: 38 unresolved externals<BR>Error executing link.exe.</DIV> <DIV>simple.exe - 39 error(s), 0 warning(s)</DIV> <DIV> </DIV> <DIV>Any help would be much appreciated.</DIV><p> <hr size=1>Do you Yahoo!?<br> Yahoo! Mail - 250MB free storage. <a href="http://us.rd.yahoo.com/evt=29915/*http://info.mail.yahoo.com/mail_250">Do more. Manage less.</a> --0-1276707054-1109706504=:36616-- |
From: | Daniel Wagner <daniel@i ...............> | Received: | Mar 1, 2005 |
To | artoolkit@h .................. | ||
Subject: | Re: change library for linking | ||
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig77A2597C6FF206DD52772B98 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit hi Ralph, looking at the linker errors i don't think that this is an issue with GLUT or LIBC (no GLUT or LIBC methods seem to be missing). it seems that you are not linking at all against ARToolKit (or the calling conventions are different). so here's the real question (which might sound silly): are you sure that you really link against ARToolKit - either via specifying a lib file or by setting a project dependency? bye, Daniel --------------enig77A2597C6FF206DD52772B98 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) iD8DBQFCJMkvQVW9sHd65aQRAuHfAKCE7fpBREOj+4+UN3OxgbtC8NrGeACfUNSJ erGJsdFxqcSYC/fUlJ2I02U= =R2D+ -----END PGP SIGNATURE----- --------------enig77A2597C6FF206DD52772B98-- |