Recent comments

Reply to: LibRaw 0.18-201511   8 years 8 months ago

Could you please add a Visual Studio 2015 solution? VS community 2015 is already free now. It will be great to have a VS 2015 solution that can build with no error.

Reply to: Extent C API IO capabilties   8 years 8 months ago

Thanks for the diff link.

It looks like no Libraw patching required, so entire project may exists separated from libraw upstream.

So, please separate your changes from libraw source and we'll put it into https://github.com/LibRaw/LibRaw-contrib repo (contact us when you're ready)

Reply to: Extent C API IO capabilties   8 years 8 months ago

Thanks for your feedback. Think you can access the diff here, even without being logged in:

https://gitlab.com/tchaik/LibRaw/commit/0e83b1278d8794513949ffed3f7de4a7...

My goal is to implement custom IO (using GIO, Gnome/GLib IO stack) for the RAW file loader of GEGL (Gimp new engine, which is C code). As of today, the only possibility is to use open_buffer() on a piece of memory previously populated by GIO machinery, but this requires the entire file/steam to be buffered... I can share a diff showing how the proposed LibRaw_proxy_datastream is intended to be used in my work in progress RAW loader if you want.

Reply to: Extent C API IO capabilties   8 years 8 months ago

Looks interesting in general, although I cannot imagine C-API user with own IO-callback written (usual C-API usage is embedding into other programming environment such as Python or Matlab or Delphi).

Is there a way to see diff against master branch in gitlab without logging in? Cannot find this button in 30-sec look.....

If your changes do not require patching main Libraw code, the best place to store it is Libraw-contrib repo, not the upstream (we're very careful with upstream, because after upstream import we need to support imported code; it is much better to keep it separately without any warranties)

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

We'll put next 'massive update' on Github in March or so.

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

Thank you very much, it all worked.

I just noticed that the post about LibRaw 18 is three months old, were there any significant changes to the source since then?

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

I guess, zlib.lib *only* is enough.

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

Thanks for your patience and answers. The problem was in zlib. So I decided to do what you said I build zlib by zlib's win32\Makefile.msc using VS x64 Native tools shell. It generated a lot of libs

minizip.lib
miniunz.lib
testzlibdll.lib
zlibstat.lib
testzlib.lib
zlibwapi.lib
zlib.lib
zdll.lib

Now I should add everything except zdll.lib and testzlib.dll to my LibRaw build ?

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

uncompress() is from zlib (library or DLL)

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

That resolved several issues. Thanks. I still can't properly compile though. It throws errors such as

libraw.lib(libraw_cxx.obj) : error LNK2019: unresolved external symbol uncompress referenced in function "protected: void __cdecl LibRaw::deflate_dng_load_raw(void)" (?deflate_dng_load_raw@LibRaw@@IEAAXXZ)

\Working-pc-13882-12680-2708-1\RAWTools.dll : fatal error LNK1120: 1 unresolved externals

CreateLibrary::cmperr: Compile error: libraw.lib(libraw_cxx.obj) : error LNK2019: unresolved external symbol uncompress referenced in function "protected: void __cdecl LibRaw::deflate_dng_load_raw(void)" (?deflate_dng_load_raw@LibRaw@@IEAAXXZ)

CreateLibrary::cmperr: Compile error: C:\Users\HP\Documents\rawtools\build\RAWTools\LibraryResources\Windows-x86-64\Working-pc-13882-12680-2708-1\RAWTools.dll : fatal error LNK1120: 1 unresolved externals

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

This is preprocessor option, of course.

Without this define
DllDef is defined as:
__declspec( dllexport ) - for DLL build
and as
__declspec( dllimport ) - for your app build.

So, it works as expected: DLL exports symbols and your app imports it.

If you define LIBRAW_NODLL (for both library build and for your app build)
DllDef is defined as empty string.
So, in library this is 'just' usual functions (without extra dllexport attributes)
And your app expects just usual functions, not dllimport

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

I'm not sure I understand, is LIBRAW_NODLL a pre-processor or linker option? The dllDef is defined just as DllDef if LIBRAW_NODLL is defined.

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

For static build you need to define LIBRAW_NODLL for both library build and library use.

The trick is in libraw/libraw_types.h (see how DllDef is defined)

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

I use static /MT build. I am using Ant build and not visual studio shell.

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

win32\Makefile.msc works ok for both 32 and 64 builds. Just use it from corresponding Visual studio shell (32 or 64-bit).

Link error: do you use LibRaw as static or as dynamic (dll) build?

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

Thank you for your answer,

if you're using win32\Makefile.msc doesn't that mean that the build will be for 32bit systems? Can you later link to a x64 project?

If not, is there a way around the issue or should I just use the latest release?

I think I managed to overcome my previous problem, and build LibRaw, but when I try to link it to my VS project I g and compile it can't find the definitions of functions I'm trying to use. e.g.

: error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl LibRaw::LibRaw(unsigned int)" (__imp_??0LibRaw@@QEAA@I@Z) referenced in function myFunction

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

In our Windows programs (RawDigger, FastRawViewer) we use zlib build by zlib's win32\Makefile.msc

No extra zlibwapi.lib is used, just zlib.lib (not zdll.lib which points to zlib.dll)

Reply to: Zlib with LibRaw 18.0.   8 years 9 months ago

I just added include path to build specification, but I'm still getting the same error.

Reply to: Static build of libraw for windows 64bit   8 years 9 months ago

Sorry, I cannot continue this way.

Please use
1) release library (LibRaw 0.17), not development branch
2) Build the static library using
nmake -f Makefile.msvc
and use lib\libraw_static.lib for your application.

Reply to: Static build of libraw for windows 64bit   8 years 9 months ago

I didn't define it as LIBRAW_NODLL, but even after fixing that the same errors remain.

#ifdef WIN32
#ifdef LIBRAW_NODLL
# define DllDef
#else
# ifdef LIBRAW_BUILDLIB
# define DllDef __declspec( dllexport )
# else
# define DllDef __declspec( dllimport )
# endif
#endif
#else
# define DllDef
#endif

this how the libraw_types now looks like

Reply to: Static build of libraw for windows 64bit   8 years 9 months ago

Have you defined LIBRAW_NODLL on library and your application build?

If not, LibRaw will link as dllexport, while your app expect it as dllimport (more details are in libraw_types at DllDef define)

Reply to: Static build of libraw for windows 64bit   8 years 9 months ago

Hi again,

So I've managed to build the libraries, but when I try to link to my project I am getting the following errors

main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl LibRaw::open_file(char const *,__int64)" (__imp_?open_file@LibRaw@@QEAAHPEBD_J@Z) referenced in function GetColordataBlack

and more like it, what might be the issue?

Reply to: error while loading shared libraries: libraw.so.15: cannot open shared object file   8 years 9 months ago

Sorry, no Linux on hands, so could not check the advice:
1) ./configure --enable-shared=no
2) make clean && make # to rebuild
This will remove shared (.so) libraries and will build static (.a) instead

Than build your sample.

If you have installed libraw libraries somewhere in system (/usr/local/lib or so) you may need to deinstall it

Reply to: error while loading shared libraries: libraw.so.15: cannot open shared object file   8 years 9 months ago

Hi, what do you mean by static build and compile.
I am kinda new to this so if you could please help.
the linkage is supposed to be in the "g++" command right?

Regards

Reply to: error while loading shared libraries: libraw.so.15: cannot open shared object file   8 years 9 months ago

try to use static build and static linking.

Pages