Re: error LNK2019: unresolved external symbol
Hi,
Here are the command lines for the compilation of the programm:
/Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "#define NOMINMAX" /D
"_AFXDLL" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Zc:wchar_t-
/Yu"stdafx.h" /Fp"Debug\essai_acquisition2.pch" /Fo"Debug\\"
/Fd"Debug\vc80.pdb" /W3 /nologo /c /ZI /TP /errorReport:prompt
Here are the command line for linking:
/OUT:"C:\Documents and Settings\hdelanoe\Mes documents\Visual Studio
2005\Projects\essai_acquisition2\Debug\essai_acquisition2.exe" /NOLOGO
/MANIFEST
/MANIFESTFILE:"Debug\essai_acquisition2.exe.intermediate.manifest"
/NODEFAULTLIB:"msvcrt.lib" /DEBUG /PDB:"c:\Documents and
Settings\hdelanoe\Mes documents\Visual Studio
2005\Projects\essai_acquisition2\debug\essai_acquisition2.pdb"
/SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORT:PROMPT " ipl98_visualc.lib
1394camera.lib cameras_ipl98.lib
Here is the main code of the programm:
// essai_acquisition2.cpp : Defines the entry point for the console
application.
//
#include "stdafx.h"
#include <camera/camera_firewire/camera_firewire_cmu.h>
#include <ipl98/cpp/image.h>
#include <camera/camera_firewire/cmu/1394Camera.h>
#include <string>
#include <ostream>
#include <istream>
#include <iostream>
#include <limits>
#include <cctype>
#include <sstream>
#include <cstdio>
#include <sstream>
using namespace ipl;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
if (argc!=2)
{
////cout << "ERROR - needs number of image to grab as argument" <<
endl;
return 1;
}
unsigned int TotalImages;
//sscanf(argv[1],"%d",&TotalImages);
//cout << "Total images to grab: " << TotalImages << endl;
CImage Img;
ostringstream ost;
CCameraFirewireCMU Cam;
Cam.Initialize();
//cout << endl << "Camera successfully selected, current settings: "
<< endl;
Cam.GetCurrentSettings(ost);
//cout << ost.str() << endl;
ost.str("");
string FilePrefix("Image_");
// grab image from each camera
for(int i=0; i<TotalImages;i++)
{
Cam.Acquire(Img);
//ost << FilePrefix << setfill('0') << std::setw(4) << i << ".bmp";
//Img.Save(ost.str().c_str());
//cout << "Saved image: " << ost.str() << endl;
//ost.str("");
}
//std::cout << "Finished...(press return)" << std::endl;
if (getchar()){}
return true;
}
That is the definition of
ostream& operator<<( ostream&, char const*);
that is missing. The only way I can imagine to get this error is to
explicitly not link to the C++ standardlibrary, but that requires some
effort.
I thought this definition was included in <ostream> which is called
(see program above)
here what my <ostream> says
#ifdef _DLL
#pragma warning(disable:4231) /* the extern before template is a
non-standard extension */
extern template _CRTIMP basic_ostream<char, char_traits<char> >&
__cdecl operator<<(
basic_ostream<char, char_traits<char> >&, const char *);
extern template _CRTIMP basic_ostream<char, char_traits<char> >&
__cdecl operator<<(
basic_ostream<char, char_traits<char> >&, char);
extern template _CRTIMP basic_ostream<char, char_traits<char> >&
__cdecl operator<<(
basic_ostream<char, char_traits<char> >&, const signed char *);
extern template _CRTIMP basic_ostream<char, char_traits<char> >&
__cdecl operator<<(
basic_ostream<char, char_traits<char> >&, const signed char);
extern template _CRTIMP basic_ostream<char, char_traits<char> >&
__cdecl operator<<(
basic_ostream<char, char_traits<char> >&, const unsigned char
*);
extern template _CRTIMP basic_ostream<char, char_traits<char> >&
__cdecl operator<<(
basic_ostream<char, char_traits<char> >&, const unsigned char);
extern template _CRTIMP basic_ostream<wchar_t, char_traits<wchar_t> >&
__cdecl operator<<(
basic_ostream<wchar_t, char_traits<wchar_t> >&, const wchar_t
*);
extern template _CRTIMP basic_ostream<wchar_t, char_traits<wchar_t> >&
__cdecl operator<<(
basic_ostream<wchar_t, char_traits<wchar_t> >&, wchar_t);
extern template _CRTIMP basic_ostream<wchar_t, char_traits<wchar_t> >&
__cdecl operator<<(
basic_ostream<wchar_t, char_traits<wchar_t> >&, const signed
short *);
#pragma warning(default:4231) /* restore previous warning */
#endif // _DLL
Thanks again
Helene