5
การเชื่อมโยงแบบไดนามิก - Vs Linux ของ windows
ใน Windows เมื่อฉันรวบรวมรหัส C / C ++ ในโครงการ DLL ใน MSVC ฉันได้รับ 2 ไฟล์: MyDll.dll MyDll.lib ที่เท่าที่ฉันเข้าใจMyDll.libมีชนิดของตารางตัวชี้ที่ระบุตำแหน่งฟังก์ชั่นใน dll เมื่อใช้ dll นี้พูดในไฟล์ exe MyDll.libจะถูกฝังลงในไฟล์ exe ในระหว่างการเชื่อมโยงดังนั้นในขณะรันไทม์มัน "รู้" ซึ่งฟังก์ชั่นตั้งอยู่ในMyDll.dllและสามารถใช้งานได้ แต่ถ้าฉันรวบรวมรหัสเดียวกันภายใต้ Linux ฉันได้รับเพียงไฟล์เดียวMySo.soโดยไม่ MySo.a(เทียบเท่ากับlibไฟล์ใน Linux) ดังนั้นไฟล์ปฏิบัติการภายใต้ Linux รู้ได้อย่างไรว่าฟังก์ชั่นตั้งอยู่ที่ไหนMySo.soถ้าไม่มีอะไรฝังอยู่ในระหว่างการเชื่อมโยง?