我的问题与 Windows 和 Linux 环境中的动态库加载(“abc.dll”或“abc.so”)有关。
我有一个 dll 或共享内存。我有两个应用程序必须使用这个 dll(abc.dll 或 abc.so)。现在我已将此 dll(abc.dll 或 abc.so)的副本放在它们各自的可执行文件夹中:
/folder-one/app1.exe
/folder-one/abc.dll (resp. abc.so)
/folder-two/app2.exe
/folder-two/abc.dll (resp. abc.so)
现在,当我运行它时,它会从它的& 运行中app1.exe
加载abc
-library(abc.dll 或 abc.so) 。
现在,当我运行它时,它会从它的& 运行中加载-library(abc.dll 或 abc.so) 。folder-one
app2.exe
abc
folder-two
Q-1 现在我的问题是,当两个应用程序都运行时,会加载两个 dll 副本吗?
Loader 将共享库(abc.dll 或 abc.so)加载到 linux 和 windows 环境中的内存中。 http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
Q-2 将共享库(abc.dll 或 abc.so)作为各自文件夹中的单独副本是否有缺点?
Q-3 如果我想从两个应用程序加载一个 dll,那么公共位置应该是什么(这样两个应用程序都可以找到它)?