[GNC-dev] gc 4.6 compile problem

Lothar Paltins lkpgcd at mailbox.org
Wed Jun 30 14:34:42 EDT 2021


Hi,

I've tried to compile gnucash 4.6 under Linux (OpenSuse Tumbleweed):
  cmake -DCMAKE_INSTALL_PREFIX=/opt/gnucash ..
  make

There was the following error:

> [ 23%] Generating ../../lib64/guile/3.0/site-ccache/gnucash/engine/business-core.go
> Backtrace:
> In /usr/bin/guild:
>     72:17 19 (main _)
> In srfi/srfi-1.scm:
>     634:9 18 (for-each #<procedure 7ffbb68528c0 at scripts/compile.?> ?)
> In scripts/compile.scm:
>    279:26 17 (_ _)
> In system/base/target.scm:
>      65:6 16 (with-target _ _)
> In system/base/compile.scm:
>     187:6 15 (compile-file "/home/lothar/src/work/gnucash/gnucash-4?" ?)
>      53:4 14 (call-with-output-file/atomic _ _ _)
> In ice-9/boot-9.scm:
>   1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
> In system/base/compile.scm:
>     69:11 12 (_)
>    190:11 11 (_ #<closed: file 7ffbb6930930>)
>    331:39 10 (read-and-compile #<input: business-core.scm 13> #:from ?)
>    261:27  9 (_ _ _)
> In ice-9/boot-9.scm:
>    2835:4  8 (save-module-excursion #<procedure 7ffbb53e0da0 at lang?>)
> In language/scheme/compile-tree-il.scm:
>     31:15  7 (_)
> In ice-9/psyntax.scm:
>   1230:36  6 (expand-top-sequence (#<syntax:business-core.scm:22:0?>) ?)
>   1222:19  5 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
>    259:10  4 (parse _ (("placeholder" placeholder)) ((top) #(# # ?)) ?)
> In unknown file:
>            3 (load-extension "libgnucash-guile" "gnc_guile_bindings_?")
> In system/foreign-library.scm:
>    190:25  2 (load-foreign-library _ #:extensions _ # _ #:search-path ?)
> In unknown file:
>            1 (dlopen "/usr/lib64/libgnucash-guile.so" 1)
> In ice-9/boot-9.scm:
>   1685:16  0 (raise-exception _ #:continuable? _)
> 
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> In procedure dlopen: file "/usr/lib64/libgnucash-guile.so", message "/usr/lib64/libgnucash-guile.so: undefined symbol: gnc_pricedb_lookup_latest_before_any_currency_t64"
> make[2]: *** [bindings/guile/CMakeFiles/scm-engine-0.dir/build.make:79: lib64/guile/3.0/site-ccache/gnucash/engine/business-core.go] Error 1
> make[1]: *** [CMakeFiles/Makefile2:11852: bindings/guile/CMakeFiles/scm-engine-0.dir/all] Error 2
> make: *** [Makefile:166: all] Error 2

According to the NEWS file, 
gnc_pricedb_lookup_latest_before_any_currency_t64 was replaced by 
gnc_pricedb_lookup_nearest_before_any_currency_t64. The problem seems to 
be the dlopen "/usr/lib64/libgnucash-guile.so", that's the old 4.5 
library installed by the distribution. Copying the new generated library 
build/lib64/libgnucash-guile.so to /usr/lib64 fixes the issue, but 
that's a pretty ugly hack.

Is there a better fix?

Lothar
-- 
Lothar Paltins                                      lkpgcd at mailbox.org


More information about the gnucash-devel mailing list