PCL cloud visualization Visual Studio 2010 - c++

I am trying to build this simple visualization example using VS2010:
http://pointclouds.org/documentation/tutorials/pcl_visualizer.php
I have linked all .lib files (both pcl and 3rdparty) however I get a bunch of unresolved external symbol errors all of which are happening on vtkRendering-gd.lib and seem to be OpenGL related like the following:
vtkRendering-gd.lib(vtkOpenGLTexture.obj) : error LNK2001: unresolved external symbol __imp_glPopAttrib
vtkRendering-gd.lib(vtkOpenGLRenderer.obj) : error LNK2001: unresolved external symbol __imp_glPopAttrib
vtkRendering-gd.lib(vtkOpenGLRepresentationPainter.obj) : error LNK2001: unresolved external symbol __imp_glPopAttrib
vtkRendering-gd.lib(vtkOpenGLLight.obj) : error LNK2001: unresolved external symbol __imp_glPopMatrix
I am on a x64 Windows 7 machine, and I have installed the x64 version of PCL using the all-in-one installer.
Thanks for your help.

in the http://www.pointclouds.org/ it says that the visualization library is ment to work in Qt. It might be using Qt GUI features .any way I suggest you check if your error is coming from it.
(although I know that you could define your own GUI with other engines like opengl)

I'm using VS10 + Win64 + pcl with no issues. But I used another way of installation.
I installed dependencies (http://www.pointclouds.org/downloads/windows.html) from column Windows MSVC 2010 (64bit)
In particular:
boost 1.50.0
Eigen 3.0.5
FLANN 1.7.1
VTK 5.8.0 with Qt support
Qt 4.8.0
QHull 2011.1 (6.2.0.1385)
OpenNI OpenNI 1.5.4 (patched)
OpenNI Sensor 5.1.0 (patched)
After installing them one after another I followed instructions on this page http://pointclouds.org/documentation/tutorials/compiling_pcl_windows.php#compiling-pcl-windows
And I had no problems, everything is working fine.

You are missing opengl32.lib
Add it to Properties->Linker->Input->Additional Dependecies

Related

Visual Studio 12 - cannot find basic functions

I am a Java developer whose project needs one bit of C code (DLL) that I recompile every few years when I upgrade my machine. My new machine is AMD-64bit (Windows8) so the old 32-bit DLL will not run.
I installed MS Visual Studio 12. I copied the old project to the new machine. VS migrated it. I selected build and prayed that it would work. Of course, it did not.
I get these two errors:
1>IcmpSocketN.obj : error LNK2001: unresolved external symbol __imp__printf
1>IcmpSocketN.obj : error LNK2001: unresolved external symbol __imp___ftime64_s
1>C:\temp\new_March09\ATM\Release\AtiICMP.dll : fatal error LNK1120: 2 unresolved externals
These are two standard functions so I am assuming that VS installed them somewhere.
When I did the install I selected the C++ foundation libraries. When I look at the project properties I see that the only platform option is Win32. This is a 64-bit machine. I do not know if that matters or not.
The VS install on my old machine has a VC subdirectory with a bunch of libraries in it. The new install has no such directory.
Is there some .lib or .dll that I have to download independently of the VS install? Some environment variable change?
thanks

Visual Studio 2010 : error LNK2001: unresolved external symbol : sapi.h and Microsoft Speech SDK for KINECT

I'm encountering a strange bug in Visual Studio 2010...
I work with the Kinect for Windows SDK v1.8 on VS 2010 Ultimate, for a speech recognizer program using the MS Kinect.
Like it's explained in the sample SpeechBasics (available on Kinect Developer Toolkit Browser), I added the specifics VC++ include and library paths into my project properties, before listing the default system include and library directories.
But When I buid the solution, I get the following errors :
CKinect_Squeletton.obj: error LNK2001: unresolved external symbol _SPDFID_WaveFormatEx
CKinect_Squeletton.obj: error LNK2001: unresolved external symbol _CLSID_SpStream
CKinect_Squeletton.obj: error LNK2001: unresolved external symbol _CLSID_SpInprocRecognizer
CKinect_Squeletton.obj: error LNK2001: unresolved external symbol _CLSID_SpObjectTokenCategory
build failed.
I had checked all my include files, all my project properties. I did a lot of research, and tested many possibilities of response, but I hadn't found response for my problem...
I have tried cleaning the solution, build with a x64 target architecture, but that doesn't always work.
Why have I this problem ?
Like suggested in the comment, I've checked the link on social MSDN
I've resolved some errors but not all in using __uuidof(SpStream) instead of CLSID_SpStream , and __uuidof(SpInprocRecognizer) instead of CLSID_SpInprocRecognizer .
But i don't found CLSID_SpObjectTokenCategory in my code, I have only
ISpObjectToken *pEngineToken = NULL;
hr = SpFindBestToken(SPCAT_RECOGNIZERS,L"Language=40C;Kinect=True",NULL,&pEngineToken);
I can't replace it with __uuidof(SpObjectTokenCategory) .
Also, I always don't know how to resolve the error
CKinect_Squeletton.obj: error LNK2001: unresolved external symbol _SPDFID_WaveFormatEx
I've added sapi.lib in Project + Properties, Linker, Input, and I also try with #pragma comment(lib, "sapi.lib")
I have resolved my problem !
I work on Windows 7 64bit, and I had installed MS Speech Platform SDK 11 x64.
But to build with a x86 target architecture , I had to install and use MS Speech Platform SDK 11 x86, and specify in my project properties the path for the x86 sapi lib !
The compiler gave me errors when I've tried to build with a x64 target architecture, because others specific libraries that I have included in the project are for a x86 architecture...
Sorry and maybe this solution will help someone one day !

unresolved external symbol _forceCRTManifestCUR

When I am trying to build one of my C++ solution for x64 architecture. I am getting alot of these errors:
Error 34 error LNK2001: unresolved external symbol _forceCRTManifestCUR
Project was working fine before but I had to reinstall windows and so
VS since than it is having this problem.
It builds all fine when i build it for x32
My Operating System is Windows XP - X32 (Visual Studio - 2008) can this be the reason? I
hope it is possible to build a solution for x64 architecture while
on a x32 system?
Please guide me how can i resolve this issue.
Thankyou.

SOIL Library Linking Errors

I'm trying to use the SOIL library with freeglut and glew. I'm using Visual Studio 2012 on a Windows 8, 64bit laptop. I'm getting these errors:
1>libSOIL.a(stb_image_aug.o) : error LNK2019: unresolved external symbol __alloca referenced in function _stbi_zlib_decode_noheader_buffer
1>libSOIL.a(image_helper.o) : error LNK2019: unresolved external symbol _sqrtf referenced in function _RGBE_to_RGBdivA2
1>C:\Users\UserName\documents\visual studio 2012\Projects\VectorTest\Debug\testSOIL.exe : fatal error LNK1120: 2 unresolved externals
I found a lot of other SO questions about linking to the SOIL library, but none worked for me.
Some suggested linking in other libraries (but those seemed to be gcc specific - it was libgcc.a), others suggested building the SOIL library again.
The source code contains projects for vc6 through vc9. I built the vc9 project and tried using it - it didn't work. When I tried to build my program, it said 'The application was unable to start correctly (0xc000007b)'. I tried making a new static library project with the source code and building that, but I got the same 0xc000007b error.
It seems that this 0xc000007b error is characteristic of using a 32bit library on a 64bit computer or vice versa. However, the SOIL library doesn't come in a 64bit/32bit mode.
I've tried compiling for x64 instead of x86 but that didn't seem to work either.
What do I need to do in order to get this working?

Unresolved external symbol CompleteAuthToken referenced

While porting a desktop application to windows mobile I've reached the following error:
Error LNK2019: unresolved external
symbol CompleteAuthToken referenced in
function
Reading MSDN it tell me that CompleteAuthToken is supported on Windows CE 2.10 and later and I should link against Secur32.lib, but adding that library didn't fix the unresolved symbol error. Any ideas?
Note: I'm using Visual Studio 2008 + Windows Mobile 6.0 SDK.
I think the MSDN docs are wrong. Looking in the Platform Builder source, I see that CompleteAuthToken() is in schannel.def and that it gets built into schannel.lib, not secure32.lib. See if making that change helps.
Did you include Security.h?
http://msdn.microsoft.com/en-us/library/aa374764(VS.85).aspx