tml*_*len 6 c linux windows linker dynamic-linking
我有一个链接到两个共享库的可执行文件,每个共享库都依赖于系统共享库.(在这种情况下,这些是OpenCL和CUDA运行时库,但这不会影响问题)
+--> libA.so ---> libOpenCL.so (on system)
Exe -|
+--> libB.so ---> libcudart.so (on system)
Run Code Online (Sandbox Code Playgroud)
Exe连同libA.so和libB.so被分发给用户.用户可能没有libOpenCL.so和/或libcudart.so安装在他们的系统上.
目标是Exe应该能够反正启动,并在运行时检测例如libA.so由于不满足其依赖性而无法加载.
一种可能性是使其libA.so在运行时使用dlopen(),在它检测加载是否失败的情况下加载.
是否也可以正常连接libA.so到Exe,但在某种程度上Exe还是可以开启如果libA.so无法加载?这在Linux和/或Windows平台上是否可行?