linux下编译opendds,求教OpenDDS的交叉编译!
本帖最后由 rdcwayx 于 2014-05-02 11:01 編輯
opendds 不是太了解。 你先看看這些資料是否有參考的價(jià)值。
http://sourceforge.net/p/opendds/support-requests/16/
http://sourceforge.net/p/opendds/feature-requests/3/
如果都是linux系統(tǒng),在一個(gè)服務(wù)器上編譯,而又要在另一臺(tái)服務(wù)器上使用的話,我自己通常的做法是,
1) 先要找出該應(yīng)用的所有依賴應(yīng)用或者庫文件( Dependencies ), 請(qǐng)參考這個(gè):
http://www.opendds.org/building.html
也就是說有三個(gè)Dependencies: TAO, gnu make, perl
安裝TAO也要找到其Dependencies, 就這樣你要一路找下去,直到最后再?zèng)]有Dependencies了。
從最底層的需求開始編譯。 當(dāng)然linux系統(tǒng)的編譯要容易些。你可以用rpm直接安裝。
2)在本機(jī)編譯,正常安裝后,找出所有的安裝文件,做成一個(gè)tar文件,比如我通常編譯安裝到/opt/opendds 這個(gè)目錄,直接將這個(gè)目錄打包。 如果有擴(kuò)展的lib文件在/usr 或者/var 下面,先不用管它們。
3)將該包擴(kuò)展到目標(biāo)服務(wù)器。
4) 手工運(yùn)行 ldd 命令,找出遺失的lib 文件。我手上沒有環(huán)境,就用CYGWIN舉例。
$ ldd setup-x86.exe
ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c900000)
kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000)
SYSFER.DLL => /cygdrive/c/WINDOWS/System32/SYSFER.DLL (0x65240000)
UMEngx86.dll => /cygdrive/c/Documents and Settings/All Users/Application Data/Symantec/Symantec Endpoint Protection/12.1.2015.2015.105/Data/Definitions/BASHDefs/20140409.011/UMEngx86.dll (0x69930000)
ADVAPI32.dll => /cygdrive/c/WINDOWS/system32/ADVAPI32.dll (0x77dd0000)
RPCRT4.dll => /cygdrive/c/WINDOWS/system32/RPCRT4.dll (0x77e70000)
Secur32.dll => /cygdrive/c/WINDOWS/system32/Secur32.dll (0x77fe0000)
COMCTL32.DLL => /cygdrive/c/WINDOWS/WinSxS/x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202/COMCTL32.DLL (0x773d0000)
msvcrt.dll => /cygdrive/c/WINDOWS/system32/msvcrt.dll (0x77c10000)
GDI32.dll => /cygdrive/c/WINDOWS/system32/GDI32.dll (0x77f10000)
USER32.dll => /cygdrive/c/WINDOWS/system32/USER32.dll (0x7e410000)
SHLWAPI.dll => /cygdrive/c/WINDOWS/system32/SHLWAPI.dll (0x77f60000)
ole32.dll => /cygdrive/c/WINDOWS/system32/ole32.dll (0x774e0000)
PSAPI.DLL => /cygdrive/c/WINDOWS/system32/PSAPI.DLL (0x76bf0000)
SHELL32.DLL => /cygdrive/c/WINDOWS/system32/SHELL32.DLL (0x7c9c0000)
WININET.DLL => /cygdrive/c/WINDOWS/system32/WININET.DLL (0x3d930000)
Normaliz.dll => /cygdrive/c/WINDOWS/system32/Normaliz.dll (0x3e0000)
urlmon.dll => /cygdrive/c/WINDOWS/system32/urlmon.dll (0x78130000)
OLEAUT32.dll => /cygdrive/c/WINDOWS/system32/OLEAUT32.dll (0x77120000)
iertutil.dll => /cygdrive/c/WINDOWS/system32/iertutil.dll (0x3dfd0000)
WSOCK32.DLL => /cygdrive/c/WINDOWS/system32/WSOCK32.DLL (0x71ad0000)
WS2_32.dll => /cygdrive/c/WINDOWS/system32/WS2_32.dll (0x71ab0000)
WS2HELP.dll => /cygdrive/c/WINDOWS/system32/WS2HELP.dll (0x71aa0000)
如果有遺漏的,你就需要從源服務(wù)器上復(fù)制過來。
通常這樣就可以了。 你有問題的話,再來問
總結(jié)
以上是生活随笔為你收集整理的linux下编译opendds,求教OpenDDS的交叉编译!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android从无知到有知——NO.7
- 下一篇: 你是个有魅力的人吗?人格魅力这样修养而成