Even,<div><br></div><div>Thanks for the response, and sorry for my late reply, here.</div><div><br></div><div>What you write makes sense, especially after processing this problem a bit further. As you mentioned, <meta charset="utf-8">libgdal1-XXXX was installed by apt-get... the problem here is that apt-get has libgdal1-1.5.0, and I was building java bindings for 1.8.0.</div>

<div><br></div><div>What would it take to upgrade these packages? The issue for my workflow now is that I need access to 1.8.0, so I&#39;ll currently have to keep a custom AMI, with gdal built from source. I&#39;d be happy to do the work to upgrade these packages to 1.8.0. Any thoughts?</div>

<div><br></div><div>Best,</div><div>Sam<br><br><div class="gmail_quote">On Thu, Feb 24, 2011 at 1:56 PM, Even Rouault <span dir="ltr">&lt;<a href="mailto:even.rouault@mines-paris.org" target="_blank">even.rouault@mines-paris.org</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le jeudi 24 février 2011 16:51:12, Sam Ritchie a écrit :<br>
<div><div></div><div>&gt; Hey all,<br>
&gt;<br>
&gt; QUICK VERSION:<br>
&gt; When I build the java bindings for gdal, what native dependencies do I need<br>
&gt; to transfer over to another machine (with an identical install location) to<br>
&gt; get them to run?<br>
&gt;<br>
&gt; LONG VERSION:<br>
&gt; I&#39;m working on an application that requires the java bindings for gdal<br>
&gt; 1.8.0 to be packaged up with the app, along with the native libraries.<br>
&gt; Now! I&#39;ve actually accomplished this on Mac OS X -- rather than building<br>
&gt; from source on each machine, I was able to pull the macports version of<br>
&gt; gdal using<br>
&gt;<br>
&gt; sudo port install gdal +hdf4 +universal<br>
&gt;<br>
&gt; then build from source, with --prefix=/opt/local, or the location of that<br>
&gt; macports variant. Once the bindings had the proper location, I was able to<br>
&gt; bundle them up inside my jar file and distribute them to other machines.<br>
&gt; (As long as the *.dylib files are on java&#39;s library path, all is well.)<br>
&gt;<br>
&gt; My issue is, I&#39;m having a bit of trouble doing the same thing with linux.<br>
&gt; I&#39;ve installed gdal-bin with<br>
&gt;<br>
&gt; sudo apt-get gdal-bin<br>
&gt;<br>
&gt; And can verify that gdalinfo works, for one of the HDF files I need to<br>
&gt; process. Good news there.<br>
&gt;<br>
&gt; I then built the java bindings from source using<br>
&gt;<br>
&gt; ./configure --prefix=/usr --with-threads --disable-netcdf --disable-fortran<br>
&gt; --with-hdf4=/usr<br>
&gt; make<br>
&gt; cd swig/java<br>
&gt; make<br>
&gt;<br>
&gt; (After modifiying swig/java/java.opt to point to my native java install.)<br>
&gt;<br>
&gt; To make these bindings work on some other machine, I know that I need the<br>
&gt; four *.so files -- after I run &quot;make&quot; inside gdal/swig/java, though, I end<br>
&gt; up with three versions of each file:<br>
&gt;<br>
&gt; libgdalconstjni.so<br>
&gt; libgdalconstjni.so.1.15.0<br>
&gt; libgdalconstjni.so.1<br>
&gt;<br>
&gt; etc.<br>
&gt;<br>
&gt; Now, it looks like the first two (.so and .so.1.15.0) are symlinked to the<br>
&gt; *.so.1 file -- if I try to bundle either of these and run my project on a<br>
&gt; fresh machine (without the built source, but after running &quot;sudo apt-get<br>
&gt; gdal-bin&quot;) and use them, I get<br>
&gt;<br>
&gt; java.lang.UnsatisfiedLinkError:<br>
&gt; /root/forma-hadoop/lib/native/libgdaljni.so: libgdal.so.1: cannot open<br>
&gt; shared object file: No such file or directory<br>
&gt;<br>
&gt; I&#39;m stuck, here. I don&#39;t know what libgdal.so.1 is<br>
<br>
</div></div>well, I thought that would have been pretty obvious ;-). This is the GDAL<br>
shared object used by language bindings and gdal command line utilities (and<br>
all other programs relying on GDAL).<br>
<br>
&gt; , or where it sits.<br>
<br>
You should likely found it in /usr/lib. It should be installed there by the<br>
libgdal1-XXXX (XXXX being the GDAL version of your Debian/Ubuntu install)<br>
package, which is itself a dependency that should be installed when installing<br>
gdal-bin.<br>
<br>
So if I have understood well your process, what you have done should work...<br>
<br>
One way to check is to &#39;ldd libgdaljni.so&#39; and do what is necessary to remove<br>
any &quot;not found&quot; dependency.<br>
<div><br>
&gt; Do I<br>
&gt; need to bundle this up as well?<br>
<br>
</div>libgdal.so.1 definitely needs to be available for the bindings to work. Then it<br>
depends on the context if you suppose that the user has it installed through<br>
the package manager, or if you must bundle it yourself ala FWTools for Linux.<br>
<div><br>
&gt; More generally, what files do the bindings<br>
&gt; depend on to actually link to the gdal binaries?<br>
<br>
</div>libgdaljni.so, libogrjni.so and etc.. will link to libgdal and its library<br>
dependencies (which depend on the exact GDAL build)<br>
<div><div></div><div><br>
&gt;<br>
&gt; (My final step, hopefully the working step, is to bundle up the (*.so.1)<br>
&gt; files, clean, and try again. This worked with OS X, but on OS X I never saw<br>
&gt; a reference to &quot;libgdal&quot;, without the jni extension.)<br>
&gt;<br>
&gt; Sorry for such a long email. I plan on doing a blog post detailing all of<br>
&gt; this work, and putting the final jar file, with OS X and linux dependencies<br>
&gt; for 1.8, up in a maven repository after this all works out.<br>
&gt;<br>
&gt; Best,<br>
&gt; Sam<br>
</div></div></blockquote></div><br></div>