> On Jun 30, 2021, at 11:34 AM, Lothar Paltins via gnucash-devel 
> <gnucash-devel@gnucash.org> wrote:
> 
> 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.

You don't need to replace the old libraries, just remove them. Then Guile won't 
be able to find them and will fall back to looking where it's told to, in the 
build directory. Kinda like that (probably apocryphal) Churchill quote about 
Americans always doing the right thing after they'd exhausted all of the 
alternatives. Make/ninja uninstall is easiest but doesn't always work if there 
are filename changes and the builddir or sourcedir are reused. If it fails it's 
usually enough to remove libgnc* from the install library folder; sometimes you 
also need to remove the installed *.scm and *.go files from their respective 
directories in libdir/guile/version/ccache and sharedir/guile.

Regards,
John Ralls

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to