2013-10-03 66 views
0

我想在FreeBSD上編譯Erlang,並且我想包含odbc許可證。FreeBSD等同於unixodbc-dev

在Ubuntu上,如果添加unixodbc-dev軟件包,確保odbc能夠與Erlang一起編譯,但是我無法找到與FreeBSD等效的軟件包。

我試過安裝unixODBC包,libodbC++包含libiodbc包。這些都不起作用。

我也試過從unixodbc.org下載unixodbc並安裝它,無濟於事。

所以,如果有一個我可以使用的軟件包,或者如果有什麼我應該從源代碼下載和編譯,我到目前爲止一直沒有找到解決方案。

關於需要安裝哪些軟件包或需要採取哪些措施以確保ODBC能夠用Erlang進行編譯的任何想法?

注:這是在FreeBSD 9.1-RELEASE和Erlang R16B02

回答

0

從看包文件列表,unixODBC應該是正確的包。

從你編譯Erlang的地方看lib/odbc/config.log。雷說,(在Debian):

configure:4913: checking for odbc in standard locations 
configure:4939: result: -L/usr/lib 

「標準位置」是/usr/local/odbc /usr/local /usr/odbc /usr /opt/local/pgm/odbc /usr/local/pgm/odbc和配置腳本查找include/sql.h低於目錄之一。如果您的目錄安裝在其他目錄中,請嘗試將--with-odbc=/some/path指定給配置腳本。

+0

我給了這幾次嘗試,並沒有運氣。 sql.h位於'usr/local/include/sql.h'中,'/ usr/local/lib'中有少量的odbc文件('libodbc.so','libodbccr.so'等)。我試過'--with-odbc =/usr/local','--with-odbc =/usr/local/lib','--with-odbc =/usr/local/include',但每次我運行'。/ configure',結果是找不到odbc。感謝您的洞察力,它肯定會感覺會產生一些東西,但不幸的是,沒有讓我更接近使用odbc編譯FreeBSD。 – chops

0

Erlang可以使用unixODBC或libiodbc。

它應該從端口安裝Erlang時工作。首先,確保您的ports樹是最新的,例如與portsnap

登錄或su爲根。然後去/usr/ports/lang/erlang,並運行make config。您應該看到以下屏幕:

 ┌─────────────────────────── erlang-15.b.03.1_1,3 ─────────────────────────────┐    
     │ ┌──────────────────────────────────────────────────────────────────────────┐ │    
     │ │+[x] DOCS  Build and/or install documentation       │ │    
     │ │+[ ] DTRACE Enable DTrace support (experimental)      │ │    
     │ │+[ ] GCC  Use current GCC           │ │    
     │ │+[ ] GS  Enable GS application (deprecated)       │ │    
     │ │+[ ] HIPE  Build native HiPE compiler         │ │    
     │ │+[ ] JAVA  Java platform support          │ │    
     │ │+[x] KQUEUE Enable Kernel Poll (kqueue) support      │ │    
     │ │+[ ] ODBC  ODBC backend            │ │    
     │ │+[x] OPENSSL SSL/TLS support via OpenSSL        │ │    
     │ │+[x] SCTP  Enable SCTP support          │ │    
     │ │+[x] SMP  Enable SMP support           │ │    
     │ │+[x] THREADS Threading support           │ │    
     │ │+[ ] WX  Enable WX application          │ │    
     │ │─────────────────────────────── ODBC backend ─────────────────────────────│ │    
     │ │+() IODBC  ODBC backend via iODBC          │ │    
     │ │+() UNIXODBC ODBC backend via unixODBC         │ │    
     │ └──────────────────────────────────────────────────────────────────────────┘ │    
     ├──────────────────────────────────────────────────────────────────────────────┤    
     │      <OK>   <Cancel>       │    
     └──────────────────────────────────────────────────────────────────────────────┘    

選擇IOBDC或UNIXODBC選項。然後以root身份運行命令make install clean。這應該構建並安裝Erlang及其所有依賴項。

編輯:如果你不想使用的端口,請確保您有編譯二郎之前無論是databases/unixODBCdatabases/libiodbc安裝,然後使用--with-odbc選項與Erlang的configure,它應該工作的罰款。這就是港口所做的。

+0

我希望我可以使用這些端口,但是我需要從erlang.org的源碼進行編譯,因爲端口樹比較滯後(在這種情況下,後面是3個版本)。但是,謝謝。儘管如此,我很欣賞答案。 – chops

+0

@chops:查看更新的答案。 –

+0

謝謝,我現在正在經歷它。我嘗試添加unixODBC,然後執行'gmake clean',然後執行'./configure --with-odbc',但結果仍然顯示'odbc'沒有找到。我將在港口遊玩一下,看看會發生什麼並回復你。再次感謝後續。 – chops