Hi all,
I am writing an opensource gui in Qt 4, and coding in linux (no
problems with OpenEXR over there), but I am also trying to port the
code to Windows platforms.
I am new to compiling in windows, right now I am using MinGW: I have
chosen it over Cygwin mainly because Qt seems to support it, and at a
first glance it seemed to be a more "pure" approach than cygwin.
Anyway, it seems like I am having some problems with the linker and my
question is: since I am using MinGW do I have to compile openexr from
source? No chance of using one of the precompiled ones right?
I tried to compile OpenEXR from source, using Msys; I had no problem
with the libz requirement, but it seems like I got stuck with the
"threads" dependency. I downloaded pthreads-w32-2-7-0-release.tar.gz
from http://sources.redhat.com/pthreads-win32/, untarred it and issued
"make clean GC". I then copied "pthread.h sched.h
semaphore.h" to c:\mingw\include and moved libpthreadGC2.a to
c:\mingw\lib.
I then unpacked the OpenEXR sources (openexr-1.4.0a.tar.gz), and issued "./configure && make".
I got the error:
if /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.
-I. -I../config -I.. -I../Iex -I../config -pipe -g
-O2 -MT IlmThreadPosix.lo -MD -MP -MF ".deps/IlmThreadPosix.Tpo"
-c -o IlmThreadPosix.lo IlmThreadPosix.cpp; \
then mv -f ".deps/IlmThreadPosix.Tpo" ".deps/IlmThreadPosix.Plo"; else rm -f ".deps/IlmThreadPosix.Tpo"; exit 1; fi
g++ -DHAVE_CONFIG_H -I. -I. -I../config -I.. -I../Iex -I../config
-pipe -g -O2 -MT IlmThreadPosix.lo -MD -MP -MF .deps/IlmThreadPosix.Tpo
-c IlmThreadPosix.cpp -DDLL_EXPORT -DPIC -o .libs/IlmThreadPosix.o
IlmThreadPosix.cpp: In destructor `virtual IlmThread::Thread::~Thread()':
IlmThreadPosix.cpp:83: error: `::pthread_join' has not been declared
IlmThreadPosix.cpp: In member function `void IlmThread::Thread::start()':
IlmThreadPosix.cpp:91: error: `::pthread_create' has not been declared
make[1]: *** [IlmThreadPosix.lo] Error 1
make[1]: Leaving directory `/c/devcppprojects/temp/openexr-1.4.0/IlmThread'
make: *** [all-recursive] Error 1
And there is where I'm stuck. (I also tried with the
--disable-threading and/or --disable-posix-sem, but nothing good came
out of it...)
What am I doing wrong?
Thanks in advance for any kind of advice
Giuseppe Rota