2011-04-20 61 views
0

我在編譯vmware vmci示例程序。該計劃分爲兩個部分編譯vmci程序

一)內核模塊 二)如數據報計劃

當我編譯的數據報的程序,我得到這些錯誤:

gcc -I headers_path datagramApp.c 
/tmp/cc6KkQ4a.o: In function `main': 
datagramApp.c:(.text+0x16c): undefined reference to `VMCI_InitApp' 
datagramApp.c:(.text+0x1be): undefined reference to `VMCI_CleanupApp' 
/tmp/cc6KkQ4a.o: In function `DoDatagramServer': 
datagramApp.c:(.text+0x1e6): undefined reference to `VMCIDatagram_CreateHnd' 
datagramApp.c:(.text+0x24f): undefined reference to `VMCIDs_Lookup' 
datagramApp.c:(.text+0x2d7): undefined reference to `VMCIResource_AddClientPrivileges' 
datagramApp.c:(.text+0x333): undefined reference to `VMCIDs_Register' 
datagramApp.c:(.text+0x3bf): undefined reference to `VMCIDatagram_RecvFrom' 
datagramApp.c:(.text+0x44f): undefined reference to `VMCIDatagram_SendTo' 
datagramApp.c:(.text+0x4a8): undefined reference to `VMCIDs_Unregister' 
datagramApp.c:(.text+0x4c0): undefined reference to `VMCIDatagram_DestroyHnd' 
/tmp/cc6KkQ4a.o: In function `DoDatagramClient': 
datagramApp.c:(.text+0x505): undefined reference to `VMCIDs_Lookup' 
datagramApp.c:(.text+0x563): undefined reference to `VMCIDatagram_CreateHnd' 
datagramApp.c:(.text+0x608): undefined reference to `VMCIResource_AddClientPrivileges' 
datagramApp.c:(.text+0x680): undefined reference to `VMCIDatagram_SendTo' 
datagramApp.c:(.text+0x6b8): undefined reference to `VMCIDatagram_RecvFrom' 
datagramApp.c:(.text+0x6f7): undefined reference to `VMCIDatagram_DestroyHnd' 

TNX

+0

用代碼縮進格式化,所以我們可以...讀它:) – sehe 2011-04-20 12:42:06

回答

0

您需要與(共享)對象鏈接以獲得VMCI的用戶界面接口這是一個來自Vmware的專有API你應該安裝[1]

典型的編譯行會則看起來更像(?):

gcc -I <headers_path> datagramApp.c -lvmci 

  • 喜歡的東西(視模塊是其中更換header_path建)
    • 在/ usr/src/linux中/包括
    • /選擇器/ VMware /包括
  • -lvmci建議在你的庫路徑libvmci.so的可用性(記得sudo ldconfig -a,任選包括-L/path/to/libs爲了使GCC/LD發現)他們

[1]或許作爲的一部分Custom Installation of VMware Tools

+0

實用,我需要寫模塊的目錄調用嗎? – 2011-04-20 13:17:08

+0

誰知道。我不知道你在說什麼 – sehe 2011-04-20 13:25:52