Quantcast
Channel: Adobe Community: Message List - XMP SDK
Viewing all articles
Browse latest Browse all 801

Compile DNG and XMP SDK from source

$
0
0

Hi,

 

I'm currently trying to compile the DNG SDK and all of its dependencies from source. My operating system ist Windows 7 and I'm using Visual Studio 2013 and 2015. I'm able to build the dng sdk for VS13 with the supplied solution files. So far, so good. BUT, my ultimate goal is to build everything with VS2015. And that's where the fun starts.

I cannot use the precompiled static libraries for XMP that are included in the "dng sdk 1.4". The linker is not willing to link these files for obvious reasons. Therefore, I have to create my own static/shared libraries. I downloaded the latest release CC-2016.7 (I also tried every other release that can be found at: http://www.adobe.com/devnet/xmp.html) and compiled it. Unfortunately, these are not compatible with the DNG SDK.

Let me explain why. When I replace the static libraries and the public interface of XMP, that were supplied with DNG, with the corresponding files from the separately downloaded XMP SDK, I get several header related errors. This is the build log:

 

------ Rebuild All started: Project: dng_sdk, Configuration: Debug x64 ------
  dng_1d_function.cpp
  dng_1d_table.cpp
  dng_abort_sniffer.cpp
  dng_area_task.cpp
  dng_bad_pixels.cpp
  dng_big_table.cpp
  dng_bottlenecks.cpp
  dng_camera_profile.cpp
  dng_color_space.cpp
  dng_color_spec.cpp
  dng_date_time.cpp
  dng_exceptions.cpp
  dng_exif.cpp
  dng_file_stream.cpp
  dng_filter_task.cpp
  dng_fingerprint.cpp
  dng_gain_map.cpp
  dng_globals.cpp
  dng_host.cpp
  dng_hue_sat_map.cpp
  dng_ifd.cpp
  dng_image.cpp
  dng_image_writer.cpp
  dng_info.cpp
  dng_iptc.cpp
  dng_jpeg_image.cpp
  dng_lens_correction.cpp
  dng_linearization_info.cpp
  dng_local_string.cpp
  dng_lossless_jpeg.cpp
  dng_matrix.cpp
  dng_memory.cpp
  dng_memory_stream.cpp
  dng_misc_opcodes.cpp
  dng_mosaic_info.cpp
  dng_mutex.cpp
  dng_negative.cpp
  dng_opcode_list.cpp
  dng_opcodes.cpp
  dng_orientation.cpp
  dng_parse_utils.cpp
  dng_pixel_buffer.cpp
  dng_point.cpp
  dng_preview.cpp
  dng_pthread.cpp
  dng_rational.cpp
  dng_read_image.cpp
  dng_rect.cpp
  dng_ref_counted_block.cpp
  dng_reference.cpp
  dng_render.cpp
  dng_resample.cpp
  dng_safe_arithmetic.cpp
  dng_shared.cpp
  dng_simple_image.cpp
  dng_spline.cpp
  dng_stream.cpp
  dng_string.cpp
  dng_string_list.cpp
  dng_tag_types.cpp
  dng_temperature.cpp
  dng_tile_iterator.cpp
  dng_tone_curve.cpp
  dng_utils.cpp
  dng_xmp.cpp
  dng_xmp_sdk.cpp
  dng_xy_coord.cpp
..\..\..\source\dng_xmp_sdk.cpp(335): error C2653: 'SXMPDocOps' : is not a class or namespace name
..\..\..\source\dng_xmp_sdk.cpp(335): error C3861: 'SetAppName': identifier not found
..\..\..\source\dng_xmp_sdk.cpp(1752): error C2065: 'SXMPDocOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1752): error C2146: syntax error : missing ';' before identifier 'docOps'
..\..\..\source\dng_xmp_sdk.cpp(1752): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1754): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1754): error C2228: left of '.OpenXMP' must have class/struct/union
          type is 'unknown-type'
..\..\..\source\dng_xmp_sdk.cpp(1781): error C2065: 'SXMPDocOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1781): error C2146: syntax error : missing ';' before identifier 'docOps'
..\..\..\source\dng_xmp_sdk.cpp(1781): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1783): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1783): error C2228: left of '.OpenXMP' must have class/struct/union
          type is 'unknown-type'
..\..\..\source\dng_xmp_sdk.cpp(1787): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1787): error C2228: left of '.NoteChange' must have class/struct/union
          type is 'unknown-type'
..\..\..\source\dng_xmp_sdk.cpp(1787): error C2065: 'kXMP_Part_All' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1789): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1789): error C2228: left of '.PrepareForSave' must have class/struct/union
          type is 'unknown-type'
..\..\..\source\dng_xmp_sdk.cpp(1812): error C2065: 'SXMPDocOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1812): error C2146: syntax error : missing ';' before identifier 'docOps'
..\..\..\source\dng_xmp_sdk.cpp(1812): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1814): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1814): error C2228: left of '.OpenXMP' must have class/struct/union
          type is 'unknown-type'
..\..\..\source\dng_xmp_sdk.cpp(1817): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1817): error C2228: left of '.NoteChange' must have class/struct/union
          type is 'unknown-type'
..\..\..\source\dng_xmp_sdk.cpp(1817): error C2065: 'kXMP_Part_Metadata' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1819): error C2065: 'docOps' : undeclared identifier
..\..\..\source\dng_xmp_sdk.cpp(1819): error C2228: left of '.PrepareForSave' must have class/struct/union
          type is 'unknown-type'
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

 

After a short investigation, I found out that the XMP header files supplied with DNG have additional sections. All of these sections are encapsulated in an "#if AdobePrivate" statement. I've checked all versions of XMP down to 5.12. None of these has this kind of additions. That's the point, where I'm stuck.

 

What can I do now? Is there some other XMP SDK that has the correct interface definition as requested by DNG SDK 1.4?

 

Best regards,

Michael


Viewing all articles
Browse latest Browse all 801

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>