Maybe I’ve found a part of the solution. I changed in postgresql-libpq.cabal Extra-Libraries: from pq to libpq.
Then runHaskell xx configure –ghc, runHaskell xx build and then runHaskell xx install. No errors…. I’am happy.
But… if I try to install postgresql-simple or hasql I get this error :
……
<command line>: can't load .so/.DLL for: d:/PROGRA~2/POSTGR~1/9.3/lib\libpq.dll (addDLL: could not load DLL)
ghc.exe: d:/PROGRA~2/POSTGR~1/9.3/lib\libpq: %1 is not a valid Win32 application.
…..
dir d:\PROGRA~2\POSTGR~1\9.3\lib\libpq.dll finds the dll, but d:/PROGRA~2/POSTGR~1/9.3/lib/libpq.dll gives: ’Parameter format not correct’.
These mangled filenames come from pg_config.exe.
Is this a filename mangling problem? Any idea what is going on?
Kees
---------------------------
I want to install postgreSQL-libpq on Windows 7 64 bits with ghc version 7.10.1 and cabal version 1.22.4.0
This is what I did:
Installed mingw
From the msys prompt: pexports "d:\program files\postgreSQL\9.3\bin\libpq.dll" > libpq.def
From the msys prompt: dlltool -d libpq.def -l libpq.a
The file libpq.a is created. I copied the file to d:\program files\postgreSQL\9.3\bin\ and then from de cmd prompt:
cabal install postgreSQL-libpq --extra-include-dirs="d:\program files\postgreSQL\9.3\include" --extra-lib-dirs="d:\program files\postgreSQl\9.3\bin"
I get:
Resolving dependencies...
Configuring postgresql-libpq-0.9.1.1...
Failed to install postgresql-libpq-0.9.1.1
Build log ( C:\Users\kees\AppData\Roaming\cabal\logs\postgresql-libpq-0.9.1.1.log ):
[1 of 1] Compiling Main ( D:\Temp\cabal-tmp-6140\postgresql-libpq-0.9.1.1\dist\setup\setup.hs, D:\Temp\cabal-tmp-6140\postgresql-libpq-0.9.1.1\dist\setup\Main.o )
Linking D:\Temp\cabal-tmp-6140\postgresql-libpq-0.9.1.1\dist\setup\setup.exe ...
Configuring postgresql-libpq-0.9.1.1...
setup.exe: Missing dependency on a foreign library:
* Missing C library: pq
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
What can I do?
Kees