How do I cross compile SQLite on my Eclipse/Windows 7 system for BeagleBone Black Rev C?

I have done ages of C++/C/Java programming on Windows/Linux.
I want to build an app for the BeagleBone Black Rev C that uses SQLite.
I downloaded the source from and build a new project in Eclipse.
I have previously built lots of apps this way for the BeagleBone Black series including Rev C.
However, the amalgamated source of SQLite does not build.
It has problems.
I have built successful multithread apps on the BeagleBone Black and have many the appropriate include and linkage assignments to the Eclipse Gods but I cannot get rid of the pthread_… undefined problems
nor can I get rid of the dl… undefinded problems.
I want to build the SQLite as an object (not in the OO sense, rather, compiled) to be linked in with my eventual application.
Is this the correct way to use SQLite (single application albeit multithreaded but I have implemented semaphore access to the eventual SQLite portion to avoid multithreading entanglements)?
Has anyone successful cross compiled SQLite from Eclipse/WIndows for the BeagleBone Black?

Any suggestions will be greatly appriciated.

./sqlite3.o: In function pthreadMutexAlloc': D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/../sqlite3.c:18832: undefined reference to pthread_mutexattr_init’
D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/…/sqlite3.c:18833: undefined reference to pthread_mutexattr_settype' d:/bbb-toolchain/gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/crtbegin.o D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/../sqlite3.c:18835: undefined reference to pthread_mutexattr_destroy’
./sqlite3.o: In function pthreadMutexTry': D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/../sqlite3.c:18964: undefined reference to pthread_mutex_trylock’
./sqlite3.o: In function unixDlOpen': -lstdc++ (d:/bbb-toolchain/gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/../../../../arm-linux-gnueabihf/lib/ D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/../sqlite3.c:29929: undefined reference to dlopen’
./sqlite3.o: In function unixDlError': D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/../sqlite3.c:29943: undefined reference to dlerror’
./sqlite3.o: In function unixDlSym': -lm (d:/bbb-toolchain/gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/ (d:/bbb-toolchain/gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/../../../../arm-linux-gnueabihf/lib\ /lib/arm-linux-gnueabihf/ (d:\bbb-toolchain\gnueabihf\bin\../arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/ (d:\bbb-toolchain\gnueabihf\bin\../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/libc_nonshared.a)elf-init.oS (d:\bbb-toolchain\gnueabihf\bin\../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/libc_nonshared.a)stat.oS (d:\bbb-toolchain\gnueabihf\bin\../arm-linux-gnueabihf/libc/usr/lib/arm-linux-gnueabihf/libc_nonshared.a)fstat.oS /lib/ (d:\bbb-toolchain\gnueabihf\bin\../arm-linux-gnueabihf/libc/lib/ D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/../sqlite3.c:29970: undefined reference to dlsym’
D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/…/sqlite3.c:29970: undefined reference to dlsym' ./sqlite3.o: In function unixDlClose’:
D:\Software Development\MyTesting\BeagleBoneBlack\SQLite\Debug/…/sqlite3.c:29975: undefined reference to `dlclose’


Overall rating

I’ve built the amalgamated source in the beagleboneblack. It doesn’t take that much of time.



" undefined reference" usually means you’re missing header ( and / or source ) files. Perhaps even that you have them, but the project you’re trying to build doesnt know where to find them.

I would also make a suggestion if i may. For things like this that is too much hassle top cross compile I typically will create or use an alternate rootfs for the beaglebone Black. This rootfs is always in my case an NFS share. But you could use a USB harddrive as well. This way, you can install all your dependancies, then compile your life away without having to worry about trashing sdcards or eMMC media. I would suggest you do the same.

I can prvide you with a rough idea of how to achieve this if you like.