undefined reference to dlopen, dlsym, dlerror on grading with CppTddPlugin
I have Web-CAT up and running on my EC2 server running Amazon Linux (with Tomcat). However, I've gone through a series of errors whenever I attempt to grade a student assignment. After a lot of fixes for various errors (including installing gcc, g++, binutils-dev, removing intl library reference + replacing fiprintf with fprintf from files inside the CppTddPlugin folder and then deleting the asset.o file) I've run into an error I don't know how to solve. When attempting to grade a student submission, I get the following compiler output:
[cc] 2 total files to be compiled. [cc] Starting link [cc] /usr/lib64/libbfd.a(plugin.o): In function `try_load_plugin': [cc] (.text+0x38b): undefined reference to `dlopen' [cc] /usr/lib64/libbfd.a(plugin.o): In function `try_load_plugin': [cc] (.text+0x3aa): undefined reference to `dlsym' [cc] /usr/lib64/libbfd.a(plugin.o): In function `try_load_plugin': [cc] (.text+0x44b): undefined reference to `dlerror' [cc] collect2: ld returned 1 exit status
I found some evidence that this could be a problem with the newer version(s) of gcc, which require the -ldl compiler flag to be at the end, but my attempts to change gcc / g++ to version 4.4 aren't helping---I still get the same error.
$ sudo yum install gcc44 $ sudo yum remove gcc46 $ sudo yum install gcc44-c++ $ sudo yum remove gcc46-c++ $ gcc -v ... gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) $ gcc -v ... gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)
Any help is very appreciated. I think using Web-CAT will really improve the quality of instruction at my institution.