我有一个奇怪的问题。我有一个使用gcc-4.2构建的共享库'my_tracker.so'。这个共享库现在依赖于libgcc_s.so.1(GCC 4.2)。我做了'ldd my_tracker.so',它从/ lib64中找到了libgcc_s.so.1。LD_PRELOAD更改LD_LIBRARY_PATH
我运行的是
'LD_PRELOAD=my_tracker.so LD_LIBRARY_PATH=[vnc_install]/lib/vnclibs:$LD_LIBRARY_PATH vncserver'
我的剧本里。我想确保vncserver从[vnc_install]/lib/vnclibs/
获得它的libgcc_so.1(GCC 3.2.3),因此将它放在LD_LIBRARY_PATH
的前面。
但是,执行我的脚本后,它看起来像vncserver从/lib64
拿起libgcc_s.so.1(GCC 4.2)。
我的预加载的共享库'my_tracker.so'的加载是否预先在发现了libgcc_s.so.1(GCC 4.2)的地方加上了LD_LIBRARY_PATH
?
如果是这样,我该如何解决这个问题?
问候 约翰
你为什么试图使用旧版本的libgcc_s.so.1?如果libc或其他东西需要更新的版本...... – bdonlan
没有vncserver二进制文件我正在使用指向旧版本libgcc_s.so.1的链接。我没有vncserver的来源来重新编译它。但是从更广泛的角度来看,如何在通用Linux系统上运行使用gcc编译器的diff版本编译的二进制文件(以及与diffg版本的libgcc_s.so.1链接)? – johnm