How to compile Phobos with other D code to create a shared library?

data pulverizer data.pulverizer at gmail.com
Wed Jun 2 21:44:08 UTC 2021


On Wednesday, 2 June 2021 at 17:49:49 UTC, Steven Schveighoffer 
wrote:
>
> What's happening is that the dynamic linker is trying to 
> resolve that symbol, but cannot find it in the given library.
>
> Try `ldd code/rbasic.so` and see if it tells you the things it 
> is looking for. Many times, you will see "Not found" or 
> something and you know what library to install/look for.

I ran `ldd`, it looks as if all the symbols are resolved

```
$ ldd rbasic.so
	linux-vdso.so.1 (0x00007ffe7af56000)
	libR.so => /lib/libR.so (0x00007f269adb8000)
	libdruntime-ldc-shared.so.94 => 
/snap/ldc2/170/bin/../lib/libdruntime-ldc-shared.so.94 
(0x00007f269ac0c000)
	libblas.so.3 => /lib/x86_64-linux-gnu/libblas.so.3 
(0x00007f269920d000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f26990be000)
	libreadline.so.8 => /lib/x86_64-linux-gnu/libreadline.so.8 
(0x00007f269906e000)
	libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 
(0x00007f2698fdc000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 
(0x00007f2698fb3000)
	libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 
(0x00007f2698fa0000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2698f84000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 
(0x00007f2698f7e000)
	libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 
(0x00007f2698d98000)
	libicui18n.so.66 => /lib/x86_64-linux-gnu/libicui18n.so.66 
(0x00007f2698a97000)
	libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 
(0x00007f2698a55000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x00007f2698a32000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2698840000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f269b29e000)
	librt.so.1 => /snap/core/current/lib/x86_64-linux-gnu/librt.so.1 
(0x00007f2698638000)
	libgcc_s.so.1 => 
/snap/core/current/lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x00007f2698420000)
	libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 
(0x00007f26983f0000)
	libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 
(0x00007f269692f000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 
(0x00007f269674e000)
```

> Otherwise, it might be that librt.so.1 seemed to have 
> __clock_nanosleep when it was built, but the librt.so.1 it is 
> loading during runtime does not have it. Are you building on 
> one machine and then running on another?
>

I am building and running on the same machine.




More information about the Digitalmars-d-learn mailing list