How to install "libgncmod*.dll" to bin/?

Tao Wang dancefire at gmail.com
Wed May 19 14:34:04 EDT 2010


Hi,

I'm working on Bug 618646, and it's almost done, but I have a problem
and don't know how to do it correctly.

The problem is that there is libgncmod*.dll are installed in
lib/gnucash, $pkglibdir, however, gnucash-bin.exe are installed in
bin/.

There are some libgncmod*.dll are linked with gnucash-bin.exe. During
the loading executable file, the system will load all the linked .dll
to memory, it will search in current directory and PATH, however,
lib/gnucash is not (and should not) in the environment variable PATH.
So, it's fail to find the linked "libgncmod*.dll" and show error
dialog and exit immediately.

When gnucash is compiled under Linux, it will use -rpath, and hardcode
the current $pkglibdir and $libdir into the gnucash-bin binary file,
so when gnucash-bin is loading, it will find the $pkglibdir for the
*.so files. However, since it's hardcoded, if we move the installed
location, or rename the directory, gnucash-bin will not be able to
find the *.so file, and show following warning:

./gnucash-bin: error while loading shared libraries: libgnc-qof.so.1:
cannot open shared object file: No such file or directory.

So, I have 2 questions:

1) should we just change all "pkglib_LT*" to "lib_LT*" in Makefile.am?
which will build everything to lib/ and in Windows installation
script, they are automatically copied to bin/
2) Not change "pkglib_" prefix, and installed all "libgncmod*.dll" to
bin/ on Windows only. But how to do that? Modify configure.ac? or
packaging/win32/install.sh(or dist.sh)?

Thanks.
-- 
Regards

Tao Wang


More information about the gnucash-devel mailing list