Linker error using RasGetEapUserIdentity in Visual Studio 2010 - visual-studio-2010

Translated from Google Translate:
I try to use just RasGetEapUserIdentity, but unfortunately I fail at compile time.
Output
meinprogrammname.obj: error LNK2019: unresolved external symbol "_RasGetEapUserIdentityW#20" in function "_wmain".
If the Properties ([ALT] + [F7]) under Linker -> Input -> additional dependencies rasdial32.lib, puts:
LINK: fatal error LNK1104: File "rasdial32.lib" can not be opened.
There is a new project as a Windows console application was created. Changes to settings I have made ​​none.
Original Post:
ich versuche gerade RasGetEapUserIdentity zu benutzen, ich scheitere jedoch leider schon bei der Kompilierung.
stdafx.h:
#include <stdio.h>
#include <tchar.h>
#include <atlbase.h>
#include <Windows.h>
#include <WinNT.h>
#include <Ras.h>
Ausgabe
meinprogrammname.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_RasGetEapUserIdentityW#20" in Funktion "_wmain".
Wenn unter Eigenschaften ([ALT]+ [F7]) unter Linker -> Eingabe -> Zusätzliche Abhängigkeiten rasdial32.lib hinzugefügt wird, erscheint:
LINK : fatal error LNK1104: Datei "rasdial32.lib" kann nicht geöffnet werden.
Es ist ein neues Projekt als Windows Konsolenanwendung angelegt worden. Änderungen an Einstellungen habe ich keine vorgenommen.

Try replacing rasdial32.lib with rasapi32.lib in your Additional Dependencies.

Related

How to link glext.lib to windows 64bit application?

I'm converting my 32bit project to 64bit and have a handful of bugs because of that. Most of them are solvable, but I've got a problem with hooking up glext.lib there.
1>LINK : fatal error LNK1104: cannot open file glext.lib
On 32bit version it worked ok.
What should I do?
Here are my definitions and includes for x86 project;
#pragma once
#include "gl_camera.h"
#define GL_GLEXT_PROTOTYPES
#include "utils.h"
#include <gl\GL.h>
#include <GL\glext.h>
#include "navigation.h"
#include "Resource.h"
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glBindBuffer в функции "public: void __cdecl window_glview::add_mesh_to_GPU(class mesh *)" (?add_mesh_to_GPU#window_glview##QEAAXPEAVmesh###Z)
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glGenBuffers в функции "public: void __cdecl window_glview::add_mesh_to_GPU(class mesh *)" (?add_mesh_to_GPU#window_glview##QEAAXPEAVmesh###Z)
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glBufferData в функции "public: void __cdecl window_glview::add_mesh_to_GPU(class mesh *)" (?add_mesh_to_GPU#window_glview##QEAAXPEAVmesh###Z)
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glAttachShader в функции "public: bool __cdecl window_glview::init_scene_shaders(void)" (?init_scene_shaders#window_glview##QEAA_NXZ)
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glCompileShader в функции "public: bool __cdecl window_glview::init_scene_shaders(void)" (?init_scene_shaders#window_glview##QEAA_NXZ)
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glCreateProgram в функции "public: bool __cdecl window_glview::init_scene_shaders(void)" (?init_scene_shaders#window_glview##QEAA_NXZ)
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glCreateShader в функции "public: bool __cdecl window_glview::init_scene_shaders(void)" (?init_scene_shaders#window_glview##QEAA_NXZ)
1>window_glview.obj : error LNK2019: ссылка на неразрешенный внешний символ glEnableVertexAttribArray в функции "public: void __cdecl window_glview::add_mesh_to_GPU(class mesh *)" (?add_mesh_to_GPU#window_glview##QEAAXPEAVmesh###Z)
Sounds like you don't have your Library Directories configured properly for your 64 bit build, and so Visual Studio isn't able to find the link library.
In Visual Studio the library paths used to be configured from Tools -> Options -> Projects and Solutions -> VC++ Directories, but it changed (in VS2010 I think), and they are now configured from Project -> Properties -> Configuration Properties -> VC++ Directories.
Check what you have set there for your 32 bit build, and then you'll need to add the corresponding path for your 64 bit build.
Ok, here is what I've found out.
To use basic OpenGL functions in 64bit configuration you still need the same OpenGL32.lib
I've read this page to find this out:
https://www.opengl.org/wiki/Getting_Started#Windows
Here is what they say:
...Under Windows, you need to statically link to a library called
OpenGL32.lib (note that you still link to OpenGL32.lib if you're
building a 64-bit executable. The "32" part is meaningless)....
After we include OpenGL32.lib in the linker settings, we need to
#include <gl\GL.h>
#include <GL\glext.h>
, so that we had all the extended function definitions.
So after that we create a window with CreateWindowEx,
set a proper pixel format to the window's HDC. Without proper setting of pixel format the next command will give error.
After that we wglCreateContext(), check that it's not returning a NULL
next, wglMakeCurrent() - enter the current GL context and load all the bunch of needed functions manually; one by one.
PFNGLATTACHSHADERPROC glAttachShader;
PFNGLCOMPILESHADERPROC glCompileShader;
PFNGLCREATEPROGRAMPROC glCreateProgram;
glCompileShader=(PFNGLCOMPILESHADERPROC)wglGetProcAddress("glCompileShader");
glAttachShader=(PFNGLATTACHSHADERPROC)wglGetProcAddress("glAttachShader");
glCreateProgram=(PFNGLCREATEPROGRAMPROC)wglGetProcAddress("glCreateProgram");

unresolved external symbol error when importing libraries for OpenCV2.3 in Visual Studios 2010 Express C++

first time posting a question here to stackoverflow. Sorry if I butcher the formatting!
I am attempting to follow a basic tutorial on openCV, namely this one:
http://aishack.in/tutorials/tracking-colored-objects-in-opencv/
I have looked at various tutorial online on how to install openCV, including:
Setup OpenCV-2.3 for Visual Studio 2010
and
opencv.willowgarage.com/wiki/VisualC%2B%2B
without much luck.
The current version I have running right now is OpenCV 2.3.0.
I am currently running on Windows 7 with Microsoft Visual C++ Express 2010.
Whenever I try to build and run my code, I get the following errors:
1>------ Build started: Project: Camera, Configuration: Debug Win32 ------
1>camera.obj : error LNK2019: unresolved external symbol _cvReleaseImage referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage##YAPAU_IplImage##PAU1##Z)
1>camera.obj : error LNK2019: unresolved external symbol _cvInRangeS referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage##YAPAU_IplImage##PAU1##Z)
1>camera.obj : error LNK2019: unresolved external symbol _cvCvtColor referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage##YAPAU_IplImage##PAU1##Z)
1>camera.obj : error LNK2019: unresolved external symbol _cvCreateImage referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage##YAPAU_IplImage##PAU1##Z)
1>camera.obj : error LNK2019: unresolved external symbol _cvGetSize referenced in function "struct _IplImage * __cdecl GetThresholdedImage(struct _IplImage *)" (?GetThresholdedImage##YAPAU_IplImage##PAU1##Z)
1>camera.obj : error LNK2019: unresolved external symbol _cvReleaseCapture referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvWaitKey referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvShowImage referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvAdd referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvLine referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvGetCentralMoment referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvGetSpatialMoment referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvMoments referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvQueryFrame referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvNamedWindow referenced in function _main
1>camera.obj : error LNK2019: unresolved external symbol _cvCreateCameraCapture referenced in function _main
1>C:\Users\Kevin\Documents\Visual Studio 2010\Projects\Camera\Debug\Camera.exe : fatal error LNK1120: 16 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
My code is as follows:
#include "cv.h"
#include "highgui.h"
IplImage* GetThresholdedImage(IplImage* img)
{
IplImage* imgHSV = cvCreateImage(cvGetSize(img), 8, 3);
cvCvtColor(img, imgHSV, CV_BGR2HSV);
IplImage* imgThreshed = cvCreateImage(cvGetSize(img), 8, 1);
cvInRangeS(imgHSV, cvScalar(20, 100, 100), cvScalar(30, 255, 255), imgThreshed);
cvReleaseImage(&imgHSV);
return imgThreshed;
}
int main()
{
CvCapture* capture = 0;
capture = cvCaptureFromCAM(1);
if(!capture)
{
printf("Could not initialize capturing...\n");
getchar();
return -1;
}
cvNamedWindow("video");
cvNamedWindow("thresh");
IplImage* imgScribble = NULL;
while(1)
{
IplImage* frame = 0;
frame = cvQueryFrame(capture);
if(!frame)
break;
//cvErode(frame, frame, 0, 2); // ADD this line
//initalize the scribble frame if has not already been done yet
if(imgScribble == NULL)
{
imgScribble = cvCreateImage(cvGetSize(frame), 8, 3);
}
IplImage* imgYellowThresh = GetThresholdedImage(frame);
CvMoments *moments = (CvMoments*)malloc(sizeof(CvMoments));
cvMoments(imgYellowThresh, moments, 1);
// The actual moment values
double moment10 = cvGetSpatialMoment(moments, 1, 0);
double moment01 = cvGetSpatialMoment(moments, 0, 1);
double area = cvGetCentralMoment(moments, 0, 0);
// Holding the last and current ball positions
static int posX = 0;
static int posY = 0;
int lastX = posX;
int lastY = posY;
posX = moment10/area;
posY = moment01/area;
printf("position (%d,%d)\n", posX, posY);
// We want to draw a line only if its a valid position
if(lastX>0 && lastY>0 && posX>0 && posY>0)
{
// Draw a yellow line from the previous point to the current point
cvLine(imgScribble, cvPoint(posX, posY), cvPoint(lastX, lastY), cvScalar(0,255,255), 5);
}
cvAdd(frame, imgScribble, frame);
cvShowImage("thresh", imgYellowThresh);
cvShowImage("video", frame);
int c = cvWaitKey(5);
if((char)c==27 )
break;
// Release the thresholded image+moments... we need no memory leaks.. please
cvReleaseImage(&imgYellowThresh);
delete moments;
}
// We're done using the camera. Other applications can now use it
cvReleaseCapture(&capture);
cvReleaseCapture(&capture);
return 0;
}
I have installed Open CV to
C:\OpenCV2.3
I have added additional dependencies, additional directories, ect.
For the preferences for my project, they are as follows:
Additional Dependencies:
enter code here
opencv_core230.lib
opencv_highgui230.lib
opencv_legacy230.lib
opencv_video230.lib
opencv_ml230.lib
opencv_core230d.lib
opencv_highgui230d.lib
opencv_legacy230d.lib
opencv_video230d.lib
opencv_ml230d.lib
opencv_calib3d230d.lib
Aditional Library Directories:
C:\OpenCV2.3\build\x64\vc10\lib;C:\OpenCV2.3\build\x64\vc10\bin;C:\OpenCV2.3\build\x64\vc10\staticlib;%(AdditionalLibraryDirectories)
Additional Include Directories:
C:\OpenCV2.3\build\include\opencv;C:\OpenCV2.3\build\include\opencv2;C:\OpenCV2.3\build\include
I also included a path to the DLL's on my path variable for windows:
;C:\OpenCV2.3\build\x64\vc10\bin;C:\OpenCV2.3\build\bin;
I've looked at other forums, other stack overflow questions, ect without much help.
I have been trying to get this to work for the better part of a weekend. Any help would be much appreciated!
If you DID explicitly set up linking with all the necessary libraries, but linking errors still show, you might be mixing up 64/32 bit libraries and application.
I.e. make sure that all library includes point to 32 bit version of libraries if you are building 32 bit application.
I had a similar problem while I was trying to compile cvblob library (http://code.google.com/p/cvblob/) on Windows 7 32bit with Visual Studio 2010.
If everything else is done properly try my guess written below.
If not start with these tutorials:
Installing OpenCV: http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html#cpptutwindowsmakeown
Configuring your projects to build and work with opencv: http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to.
These silimar linker errors disappeared after changing some project
properties:
In VS 2010 open Your solution
Open solution explorer (View->Solution Explorer)
Find a project that generated these linker errors. (In my example it was a project called "cvblob" inside solution called "cvBlob"
generated by cmake.)
right click on that project
From the context menu select properties
On the left select Configuration properties -> General and find a field called "Target extension"
In Project Details find your project settings for "Configuration Type"
analyse them. In my particular problem of compiling cvblob I had to set Target extension to .lib and Configuration type to
Static library. This is also a solution for guys trying to compile
cvblob library in Visual Studio 2010.
Do the same for Debug and Release version if needed.
Errors I got were:
Error 24 error LNK2019: unresolved external symbol _cvSetImageROI
referenced in function
_cvSetImageROItoBlob C:\cvblob\build\lib\cvblob.obj cvblob
Error 25 error LNK2019: unresolved external symbol _cvSaveImage
referenced in function
_cvSaveImageBlob C:\cvblob\build\lib\cvblob.obj cvblob
Error 26 error LNK2019: unresolved external symbol _cvGetImageROI
referenced in function
_cvSaveImageBlob C:\cvblob\build\lib\cvblob.obj cvblob
Error 27 error LNK2001: unresolved external symbol
_cvError C:\cvblob\build\lib\cvcolor.obj cvblob
Error 28 error LNK2019: unresolved external symbol _cvError referenced
in function _cvRenderBlob C:\cvblob\build\lib\cvblob.obj cvblob
Error 29 error LNK2001: unresolved external symbol
_cvError C:\cvblob\build\lib\cvlabel.obj cvblob
Error 30 error LNK2001: unresolved external symbol
_cvError C:\cvblob\build\lib\cvcontour.obj cvblob
Error 31 error LNK2001: unresolved external symbol
_cvError C:\cvblob\build\lib\cvtrack.obj cvblob
Error 32 error LNK2019: unresolved external symbol _cvLine referenced
in function _cvRenderBlob C:\cvblob\build\lib\cvblob.obj cvblob
Error 33 error LNK2001: unresolved external symbol
_cvLine C:\cvblob\build\lib\cvcontour.obj cvblob
Error 34 error LNK2019: unresolved external symbol _cvRectangle
referenced in function
_cvRenderBlob C:\cvblob\build\lib\cvblob.obj cvblob
Error 35 error LNK2001: unresolved external symbol
_cvRectangle C:\cvblob\build\lib\cvtrack.obj cvblob
Error 36 error LNK2019: unresolved external symbol _cvSetZero
referenced in function _cvLabel C:\cvblob\build\lib\cvlabel.obj cvblob
Error 37 error LNK2019: unresolved external symbol _cvPutText
referenced in function
_cvRenderTracks C:\cvblob\build\lib\cvtrack.obj cvblob
Error 38 error LNK2019: unresolved external symbol _cvInitFont
referenced in function
_cvRenderTracks C:\cvblob\build\lib\cvtrack.obj cvblob
Error 39 error LNK1120: 9 unresolved
externals C:\cvblob\build\lib\libs\Release\cvblob.dll cvblob
I hope it will help someone compiling cvblob library in visual studio 2010.
I had similar problem in vs10 and i have forgot to add the cv210d.lib. Adding that to project properties->configuration properties-> Linker->Input->Aditional Dependencies helped me in solving this issue. I found from the question that opencv_cv230.lib was not included in additional dependencies adding that will help solving the issue.
I Had The Same Problem, in vs10
i've missed the "opencv_core246d.lib" to add. adding it to Linker->Input->Aditional Dependencies fixed error.
This might help with the newer version.
For version 2.4.8, adding opencv_imgproc248.lib resolves the following linking error:
error LNK2019: unresolved external symbol _cvRemap referenced in function _main
error LNK2019: unresolved external symbol _cvInitUndistortMap referenced in function _main
error LNK2019: unresolved external symbol _cvFindCornerSubPix referenced in function _main
error LNK2019: unresolved external symbol _cvCvtColor referenced in function _main
for me, this error got resolved by adding two lib name explicitly under input (configuration properties-->linker-->input-->additional dependencies).
when you install opencv , based on version it will have a number appended to it. For example I have opencv2.4.13 and it has 2413 appended to all its libraries, opencv_highgui2413.lib (opencv_highgui2413d.lib for debug build ).
Now,check which libraries have the functions that were shown in errors.
highgui has cvshowimage function --> you can get this by searing it online.
http://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html
Then add that lib to input and build your solution.

Symbols Missing for nsiCookieManager2 program

Please help me with the missing LIBs for this MOZILLA program.
Trying to create cookie using nsICookieManager2
I have tried with all the existing libs in Mozilla SDK
Regards
C:\Code>cl.exe FFCookie.cpp /I "C:\xulrunner-sdk\include" mozalloc.lib xpcomglue.lib /link /LIBPATH:"C:\xulrunner-sdk\lib"
Symbols Missing:
FFCookie.obj : error LNK2019: unresolved external symbol "public: void
__thiscall nsCOMPtr_base::assign_from_gs_contractid_with_er ror(class nsGetServiceByContractIDWithError const &,struct nsID const &)"
(?assign_from_gs_contractid_with_error#nsCOMPtr_base##QA
EXABVnsGetServiceByContractIDWithError##ABUnsID###Z) referenced in
function "public: __thiscall nsCOMPtr::
nsCOMPtr(class
nsGetServiceByContractIDWithError const &)"
(??0?$nsCOMPtr#VnsICookieManager####QAE#ABVnsGe
tServiceByContractIDWithError###Z)
FFCookie.obj : error LNK2019: unresolved external symbol "public: void
__thiscall nsCOMPtr_base::assign_from_qi(class nsQueryInter face,struct nsID const &)"
(?assign_from_qi#nsCOMPtr_base##QAEXVnsQueryInterface##ABUnsID###Z)
referenced in function "public: __t hiscall nsCOMPtr::nsCOMPtr(class
nsQueryInterface)" (??0?$nsCOMPtr#VnsICookieMan
ager2####QAE#VnsQueryInterface###Z) FFCookie.exe : fatal error
LNK1120: 2 unresolved externals
#include "nsICookieManager.h"
#include "nsICookieManager2.h"
#include "nsServiceManagerUtils.h"
#include "nsComPtr.h"
#include "nsNetCID.h"
#include "nsStringAPI.h"
#include "mozilla-config.h"
int main()
{
nsresult rv;
nsCOMPtr<nsICookieManager> cookieManager = do_GetService (NS_COOKIEMANAGER_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
if (cookieManager)
{
nsCOMPtr<nsICookieManager2> cookieManager2 = do_QueryInterface(cookieManager);
if (cookieManager2)
{
cookieManager2->Add(NS_LITERAL_CSTRING("ud.abc.com"),
NS_LITERAL_CSTRING("//"),
NS_LITERAL_CSTRING("TK"),
NS_LITERAL_CSTRING("abc"), 0x1, 0x1, 0, -1);
}
}
return 0;
}
Questions:
I dont find any info with function documentation regarding which LIB to include (as I find on MSDN)
Any clue on how to figure out LIB corresponding to particular function for MOZILLA.
The problem isn't with the lib, the symbol missing is defined in the xpcomglue library. However, you seem to have some compile parameters that don't match the parameters used to compile XULRunner/Firefox. The symbols your compiler is looking for contain "QAEX" as parameter description whereas the library defines them with "QAIX". Looking at the name mangling table, your compiler expects unsigned char where Mozilla has unsigned int. I suspect that the reason is you compiling your application without Unicode support - change main() into wmain()?

Linker error while trying to compile OpenCv file with visual studio

I trying to compile some OpenCv functions and I included the cvhaartraining.h from the directory C:\OpenCV2.2\modules\haartraining.
I put on Project > 'Your Project Name' Properties... > Configuration Properties > Linker > Input >
all the .lib files in the opencv library:
"C:\OpenCV2.2\lib\opencv_highgui220d.lib" "C:\OpenCV2.2\lib\opencv_core220d.lib" "C:\OpenCV2.2\lib\opencv_ml220d.lib" "C:\OpenCV2.2\lib\opencv_video220d.lib" "C:\OpenCV2.2\lib\opencv_legacy220d.lib" "C:\OpenCV2.2\lib\opencv_imgproc220d.lib" "C:\OpenCV2.2\lib\opencv_objdetect220d.lib" "C:\OpenCV2.2\lib\opencv_ts220.lib" "C:\OpenCV2.2\lib\opencv_calib3d220d.lib" "C:\OpenCV2.2\lib\opencv_contrib220d.lib" "C:\OpenCV2.2\lib\opencv_features2d220d.lib"
"C:\OpenCV2.2\lib\opencv_ffmpeg220d.lib" "C:\OpenCV2.2\lib\opencv_flann220d.lib" "C:\OpenCV2.2\lib\opencv_gpu220d.lib"
but it still won't link.
The error I get is:
vecToFiles.obj : error LNK2019: unresolved external symbol "void __cdecl cvShowVecSamples(char const *,int,int,double)" (?cvShowVecSamples##YAXPBDHHN#Z) referenced in function _main
vecToFiles.obj : error LNK2019: unresolved external symbol "int __cdecl cvCreateTrainingSamplesFromInfo(char const *,char const *,int,int,int,int)" (?cvCreateTrainingSamplesFromInfo##YAHPBD0HHHH#Z) referenced in function _main
vecToFiles.obj : error LNK2019: unresolved external symbol "void __cdecl cvCreateTestSamples(char const *,char const *,int,int,char const *,int,int,int,double,double,double,int,int,int)" (?cvCreateTestSamples##YAXPBD0HH0HHHNNNHHH#Z) referenced in function _main
vecToFiles.obj : error LNK2019: unresolved external symbol "void __cdecl cvCreateTrainingSamples(char const *,char const *,int,int,char const *,int,int,int,double,double,double,int,int,int)" (?cvCreateTrainingSamples##YAXPBD0HH0HHHNNNHHH#Z) referenced in function _main
vecToFiles\Debug\vecToFiles.exe : fatal error LNK1120: 4 unresolved externals
I think Im missing some .lib file, but I dont know which file.
Ill appreciate any help.
What extra lib files do you have? From googling it looks like it's compiled into a file called cvhaartraining.lib.

How do you compile static Taglib libraries for Windows?

I don't want to compile dynamic libs, so this question was not useful.
I downloaded taglib and compiled it using:
cmake -DENABLE_STATIC=ON -DENABLE_STATIC_RUNTIME=ON -DWITH_MP4=ON -G "Visual Studio 10"
That generates the Visual Studio solutions and I can compile the "tag" project which produces tag.lib in taglib/Release.
The problem comes when I try to use the library in a test application - nothing much, just a simple test:
#include "stdafx.h"
#include "fileref.h"
int _tmain(int argc, _TCHAR* argv[])
{
TagLib::FileRef d("");
return 0;
}
I get the following Linker errors:
Error 1 error LNK2001: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall TagLib::FileRef::~FileRef(void)" (__imp_??1FileRef#TagLib##UAE#XZ) C:\...\taglib_test\taglib_test\taglib_test.obj taglib_test
Error 2 error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall TagLib::FileRef::FileRef(class TagLib::FileName,bool,enum TagLib::AudioProperties::ReadStyle)" (__imp_??0FileRef#TagLib##QAE#VFileName#1#_NW4ReadStyle#AudioProperties#1##Z) C:\...\taglib_test\taglib_test\taglib_test.obj taglib_test
Error 4 error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall TagLib::FileName::FileName(char const *)" (__imp_??0FileName#TagLib##QAE#PBD#Z) C:\...\taglib_test\taglib_test\taglib_test.obj taglib_test
Error 3 error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall TagLib::FileName::~FileName(void)" (__imp_??1FileName#TagLib##QAE#XZ) C:\...\taglib_test\taglib_test\taglib_test.obj taglib_test
Error 5 error LNK1120: 4 unresolved externals C:\...\taglib_test\Release\taglib_test.exe taglib_test
Can somebody please give me an idea as to what's going on here?
The following are the preprocessor defines in the tag project:
WIN32
_WINDOWS
NDEBUG
HAVE_CONFIG_H
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE
TAGLIB_STATIC
CMAKE_INTDIR="Release"
For those who have had this problem:
I fixed it by defining TAGLIB_STATIC in the test project:
#include "stdafx.h"
//This should have been generated by the build system in taglib_config.h
//but was not.
#define TAGLIB_STATIC
#include "fileref.h"
int _tmain(int argc, _TCHAR* argv[])
{
TagLib::FileRef d("");
return 0;
}

Resources