Including pony-odbc¶
Let’s go ahead and create a new pony project.
red@panic:~/projects$ mkdir psql-demo
red@panic:~/projects$ cd psql-demo
red@panic:~/projects/psql-demo$ corral init
red@panic:~/projects/psql-demo$ corral add github.com/redvers/pony-odbc.git --version 0.3.0
red@panic:~/projects/psql-demo$ corral fetch
git cloning github.com/redvers/pony-odbc.git into /home/red/projects/psql-demo/_repos/github_com_redvers_pony_odbc_git
git checking out @0.3.0 into /home/red/projects/psql-demo/_corral/github_com_redvers_pony_odbc
red@panic:~/projects/psql-demo$
Let’s create a very minimal Makefile
all:
corral run -- ponyc -d
./psql-demo
… and our initial main.pony
use "pony-odbc"
use "lib:odbc" // For unixODBC. For iODBC, use "lib:iodbc"
actor Main
let env: Env
new create(env': Env) =>
env = env'
Now go ahead and run make, and run ldd to double-check that the library linked correctly:
red@panic:~/projects/psql-demo$ make
corral run -- ponyc -d
exit: Exited(0)
out:
err: Building builtin -> /home/red/.local/share/ponyup/ponyc-release-0.59.0-x86_64-linux-ubuntu24.04/packages/builtin
Building . -> /home/red/projects/psql-demo
Building pony-odbc -> /home/red/projects/psql-demo/_corral/github_com_redvers_pony_odbc/pony-odbc
Building debug -> /home/red/.local/share/ponyup/ponyc-release-0.59.0-x86_64-linux-ubuntu24.04/packages/debug
Building ffi -> /home/red/projects/psql-demo/_corral/github_com_redvers_pony_odbc/pony-odbc/ffi
Building collections -> /home/red/.local/share/ponyup/ponyc-release-0.59.0-x86_64-linux-ubuntu24.04/packages/collections
Building pony_test -> /home/red/.local/share/ponyup/ponyc-release-0.59.0-x86_64-linux-ubuntu24.04/packages/pony_test
Building time -> /home/red/.local/share/ponyup/ponyc-release-0.59.0-x86_64-linux-ubuntu24.04/packages/time
Building random -> /home/red/.local/share/ponyup/ponyc-release-0.59.0-x86_64-linux-ubuntu24.04/packages/random
Generating
Reachability
Selector painting
Data prototypes
Data types
Function prototypes
Functions
Descriptors
Verifying
Writing ./psql-demo.o
Linking ./psql-demo
./psql-demo
red@panic:~/projects/psql-demo$ ldd ./psql-demo
linux-vdso.so.1 (0x00007e36767fb000)
libodbc.so.2 => /lib/x86_64-linux-gnu/libodbc.so.2 (0x00007e3676748000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007e367665f000)
libatomic.so.1 => /lib/x86_64-linux-gnu/libatomic.so.1 (0x00007e3676654000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007e3676626000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007e3676400000)
/lib64/ld-linux-x86-64.so.2 (0x00007e36767fd000)
libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007e3676619000)
red@panic:~/projects/psql-demo$
Note that libodbc.so.2 is linked into our executable.