說我創造了一些腳本,也許一個守護進程,甚至一個輔助二進制應用程序包......當編譯這樣的二進制..是可行的,只有相對 ./configure/make它路徑?例如,更加自覺的Makefile將包括條款,如...使用相對路徑名進行交叉編譯 - 二進制可移植性/可嵌入性? (GCC)
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/hiawatha]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
這是偉大的,你可以安裝一切/opt/local
,而不是/usr/local
。甚至發瘋,並通過sed
重命名的二進制文件..我得到它..
但是仍然在我的小大腦不清楚,是如果有能力以這樣的方式任意設定的路徑延伸到地圖的能力相對於可執行的目錄,在類似的方式...
--prefix=PREFIX install architecture-independent files in PREFIX [/usr/local]
--prefix=./ aka [../relative/to/binary]
因此,舉例來說,不管你來自哪裏,推出了bin
,它總是知道它是.conf
文件將是向上一個文件夾,在那個相對../etc
文件夾,或者甚至可能就在旁邊,在同一目錄,./
。同樣,你可以保證寫訪問日誌和PID文件等,而不會懷疑你的目標的權限/目錄結構...
這將啓用一個完全可移植的/bin /etc /lib /var
目錄結構,在一個PATH我可以保證一些可預測性的表象......但我不認爲它就像那樣「有效」。而且我不確定是簡單地「靜態鏈接」還是其他方式?真正創建一個能夠被移動到另一個系統(雖然,對於這種情況,對那些在同一個地方,同樣的支持庫,以免糊里糊塗問題)二進制文件是否有可能在這個交叉編譯方式?你可以在同一個構建週期內構建多個體繫結構嗎? (例如i386和x86_64在同一時間)
也許我可以只使用一個良好的GNU/GCC引物(CC,CFLAGS,LDFLAGS,-I,-I和CPP 101等)的建議,但是那不是爲數學老師寫的(在70年代)?