1
比方說,我的目標系統上有一個x.so
庫,我的開發系統上沒有這個庫。在沒有文件的gcc中鏈接共享庫?
我需要使用gcc在我的開發機器上編譯一個程序,該程序在目標機器上使用該x.so
運行。
有沒有辦法做到這一點?
比方說,我的目標系統上有一個x.so
庫,我的開發系統上沒有這個庫。在沒有文件的gcc中鏈接共享庫?
我需要使用gcc在我的開發機器上編譯一個程序,該程序在目標機器上使用該x.so
運行。
有沒有辦法做到這一點?
是的。從它使用dlsym()
void* dlhandle = dlopen("x.so", RTLD_LAZY);
和載荷符號:
some_func_pointer = dlsym(dlhandle, "function");
然後可以調用函數(你不反對該庫鏈接所有,而是使用dlopen打開它() )通過你從dlsym()得到的函數指針。函數指針的類型當然必須與你正在加載的函數匹配。它沒有檢查你。
這可能會起作用。 – user1032861
我相信你在開發系統上不能有x.so,但我很好奇 - 爲什麼不呢? – gcbenison