Hi Johannes,

I am an idiot! Avian uses the "make" command. That will compile things
into a subdirectory of build/. It actually requires JAVA_HOME to point
to a JDK and javac to be in the PATH. Sorry for not describing this
correctly.

OK, I tried make, but the makefile doesn't support Visual Studio (only on
Windows Phone, not on Windows 7). So I guess I'll have to start over on a
Linux box, because a mingw build will most certainly be incompatible with the
maven-compiled stuff, which used Visual Studio.

Again, I did not have problems with ming64 with nar-maven-plugin. But
maybe you are referring to Avian?


Indeed, I was referring to the make-based compilation of Avian, not to maven.

And why are you trying to get things to work on the platform that is
notorious for being the most difficult to develop platform-independently
for?

Last week, we simply tried Tobias' code on my Windows box, and (thanks to maven) it worked more or less out of the box, except for the extra paths we had to add to pom.xml (see my earlier mail) and an incompatibility in some macro magic that turned out to be easy to fix. Encouraged by this success, I simply tried your code as well.

I don't mind switching to Linux for the time being, it just means that I have to install all prerequisites again, which will take some time.

As I said, Windows is notorious for being hard to compile
platform-independent code on. It is not only the insistence on a
non-standard C++ ABI (you cannot mix and match Visual C++-compiled code
with GNU C++-compiled code because GNU C++ *adheres* to the standard while
Visual C++ does not).

GNU's standard adherence notwithstanding, different versions of gcc still produce mutually incompatible shared libraries, see our other conversation on the VIGRA mailing list. So Linux and Mac are not really much better in this respect. In the end, it is the complexity of C++ that bites everyone.

It is also the chronical problems with a lack of
standardized installation paths for headers and libraries,

Indeed. I opted for a Unix-like path structure according to c:\install\bin, c:\install\include etc., which makes life a lot easier.

the lack of
speed with its filesystem drivers (and as a consequence insane runtimes of
compilation and Git operations compared to every other operating system).

VIGRA compilation takes about the same time on Windows and Linux, and I haven't experienced any latency in git either. In contrast, maven did indeed seem to be a bit on the slow side.

And of course it is the complete and utter lack of POSIX routines,
something industry outside Microsoft's area of influence settled on a long
time ago.


I guess, the boost libraries have solved this problem for most purposes, and better than POSIX for that matter.

Yes, there is another thing I completely forgot to mention: in
vigra-imglib2, I ran "mvn dependency:copy-dependencies" a long time ago
(back when I mentioned to Tobias that I was working on this),
so long ago that I forgot in the meantime. Very sorry for this!


OK. I executed "mvn dependency:copy-dependencies", followed by "mvn install", and am back to

[ERROR] Error: Class net.imglib2.Interval could not be found.

But since Avian won't work easily on this machine anyway, it's probably not worth fixing now.

Best regards
Ulli

_______________________________________________
ImageJ-devel mailing list
ImageJ-devel@imagej.net
http://imagej.net/mailman/listinfo/imagej-devel

Reply via email to