Re: Need help with Makefile for static c++ connector
Posted by:
Ian James
Date: September 18, 2021 07:21PM
Luis,
Thank you so much for replying to my thread. I appreciate your willingness to assist. Before posting, I had tried a lot of different things, and ultimately decided to seek forum help when they weren't working. At that point, I attempted to restore my makefile to its most basic state, based on the documentation on the MySQL website. It looks like I restored a piece incorrectly and grabbed the wrong library there. Aside from that errant "8", everything else was correct.
After your suggestions I have jumped back in, removed that "8", and then I tried to add "-DSTATIC_CONCPP" as you recommended. I wasn't sure where to put, it however, so I tried a few different places. If you look at my makefile here are the areas I put it: 1: At the end of the line for "CFLAGS" (so just after "-std=c++17". 2: At the beginning of the line for "CPPFLAGS", so in between the "=" and "-DCPPCONN_PUBLIC_FUNC=". 3: At the beginning of the line for "LDFLAGS" so in between the "=" and "${MYSQL_CONCPP_DIR)...".
Trying each separately, I always come back with the exact same result:
main.cpp:(.text+0x3ad): undefined reference to `sql::mysql::get_driver_instance()'
collect2: error: ld returned 1 exit status
make: *** [Makefile:38: mysqltest] Error 1
I'd like to note that when I add to the "LDFLAGS" line "-lmysqlcppconn", then everything works. So its not the c code, its something not being found when trying to link this static library. I can post my makefile again if that's helpful, I just have no idea why the shared library works but the static file just won't.