I tried your simple demo program.
It compiles OK but none of the symbols are found by the linker.
What am I missing?
My build command:
$ g++ -lraw -o readraw readraw.cpp
Error messages returned:
/tmp/ccDvzTRc.o: In function `main':
readraw.cpp:(.text+0x4a): undefined reference to `LibRaw::LibRaw(unsigned int)'
readraw.cpp:(.text+0x68): undefined reference to `LibRaw::open_file(char const*, long long)'
readraw.cpp:(.text+0x9c): undefined reference to `LibRaw::unpack()'
readraw.cpp:(.text+0xab): undefined reference to `LibRaw::raw2image()'
readraw.cpp:(.text+0x187): undefined reference to `LibRaw::recycle()'
readraw.cpp:(.text+0x19b): undefined reference to `LibRaw::~LibRaw()'
readraw.cpp:(.text+0x1c0): undefined reference to `LibRaw::~LibRaw()'
collect2: error: ld returned 1 exit status
Here is my test program in full:
#include "libraw/libraw.h"
int main(int argc, char *argv[])
{
char *file = argv[1];
LibRaw RawProcessor;
RawProcessor.open_file(file);
printf("Image size: %d x %d\n",RawProcessor.imgdata.sizes.width,RawProcessor.imgdata.sizes.height);
RawProcessor.unpack();
RawProcessor.raw2image();
for(int ii = 0; ii < RawProcessor.imgdata.sizes.iwidth * RawProcessor.imgdata.sizes.iheight; ii++)
{
printf("i=%d R=%d G=%d B=%d G2=%d\n", ii,
RawProcessor.imgdata.image[ii][0],
RawProcessor.imgdata.image[ii][1],
RawProcessor.imgdata.image[ii][2],
RawProcessor.imgdata.image[ii][3] );
}
RawProcessor.recycle();
return 0;
}
Place libraries *after* your
Place libraries *after* your sources in linker command line:
-- Alex Tutubalin @LibRaw LLC
It works now, thanks.
It works now, thanks.