提问者:小点点

linux和共享库以及不同的G++编译器


关于在LINUX上拥有一个进程,dopen()多个共享库以及可执行文件和/或共享库用不同的C++编译器编译(例如由客户或第三方提供)的故事是怎样的。

我的假设是否正确:

  1. linux进程中的符号只有一个名称空间。 仅通过符号名称查找和解析符号。 在存在未知的可执行文件(客户提供的)或客户提供的共享库时,符号的源是随机的。
  2. 无法确定STL/BOOST符号是从正确的源解析的,因为它们总是弱的,因此可能被覆盖。

在同一个进程中使用多个(不同的)libc++副本(其中一些是静态的)有什么含义?


共1个答案

匿名用户

通过使用传递给dlopen()的以下标志加载共享库,似乎可以避免这种随机性的一部分:

  • RTLD_LOCAL
  • RTLD_DEEPBIND

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(linux|共享|库|g++|编译器)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?