0

我正在尝试在 FreeBSD 上编译 Erlang,并且我想包含 odbc 许可证。

在 Ubuntu 上,如果添加 unixodbc-dev 包,可以确保使用 Erlang 编译 odbc,但是,我找不到与 FreeBSD 等效的包。

我试过安装 unixODBC 包,以及带有 libiodbc 包的 libodbc++。这些都不起作用。

我也尝试从 unixodbc.org 下载 unixodbc 并安装它,但无济于事。

因此,如果有我可以使用的包,或者我应该从源代码下载并编译某些东西,那么到目前为止我还没有找到解决方案。

关于需要安装哪些软件包或需要采取哪些步骤来确保使用 Erlang 编译 ODBC 的任何想法?

注意:这是 FreeBSD 9.1-Release 和 Erlang R16B02

4

2 回答 2

1

从包文件列表看,unixODBC应该是正确的包。

lib/odbc/config.log从你编译 Erlang 的地方往里看。我的说(在 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配置脚本。

于 2013-10-03T16:06:50.047 回答
0

Erlang 可以使用 unixODBC 或 libiodbc。

当您从端口安装 Erlang 时,它应该可以工作。首先,确保您的端口树是最新的,例如portsnap.

登录或suroot。然后去/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 选项。make install clean然后以 root 身份运行该命令。这应该构建和安装 Erlang 及其所有依赖项。

编辑:如果您不想使用端口,请确保在编译 erlang 之前已安装databases/unixODBCdatabases/libiodbc安装,然后将--with-odbc选项与 erlang's 一起使用configure,它应该可以正常工作。这就是端口的作用。

于 2013-10-03T20:57:50.607 回答