7
votes

I installed opencv with static linking on pandaboard using BUILD_SHARED_LIBS=0 option. I am using ubuntu 11.10. I also built 3rd party libraries png, jpeg, jasper and zlib. (cmake options BUILD_PNG=ON BUILD_JASPER=ON BUILD_JPEG=ON BUILD_ZLIB=ON WITH_JPEG=ON WITH_PNG=ON WITH_JASPER=ON). My opencv installation was successful. However when I compile a test program I get a number of undefined reference to errors. All of these errors seem to be related to jpeg, png and jasper libraries but i can't understand why libhighgui is not able to refer to 3rd party libraries when I explicitly link them. Here is how I compile my program :

g++ -static face_recognition.cpp -o fcarm -I/home/nandhini/opencv/2.4.2static/include/opencv -I/home/nandhini/opencv/2.4.2static/include -L/home/nandhini/opencv/2.4.2static/lib/ -L/home/nandhini/opencv/2.4.2static/share/OpenCV/3rdparty/lib -llibjpeg -llibjasper -llibpng -lzlib -lopencv_core -lopencv_contrib -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_flann -lopencv_photo -lopencv_legacy -pthread -lm -lrt -lstdc++ -ldl

I've been stuck with this problem for a long time now and I would really appreciate it if someone can help me solve the problem. Please help, thanks !

Here is a list of my errors :

/home/nandhini/opencv/2.4.2static/lib//libopencv_core.a(persistence.cpp.o): In functionicvGets(CvFileStorage*, char*, int)': persistence.cpp:(.text._ZL7icvGetsP13CvFileStoragePci+0x7e): undefined reference to gzgets' /home/nandhini/opencv/2.4.2static/lib//libopencv_core.a(persistence.cpp.o): In function_ZL16icvYMLSkipSpacesP13CvFileStoragePcii.constprop.61': persistence.cpp:(.text._ZL16icvYMLSkipSpacesP13CvFileStoragePcii.constprop.61+0x11e): undefined reference to gzeof' /home/nandhini/opencv/2.4.2static/lib//libopencv_core.a(persistence.cpp.o): In functionicvPuts(CvFileStorage*, char const*)': persistence.cpp:(.text._ZL7icvPutsP13CvFileStoragePKc+0x138): undefined reference to gzputs' /home/nandhini/opencv/2.4.2static/lib//libopencv_core.a(persistence.cpp.o): In functionicvXMLSkipSpaces(CvFileStorage*, char*, int)': persistence.cpp:(.text._ZL16icvXMLSkipSpacesP13CvFileStoragePci+0x1a2): undefined reference to gzeof' /home/nandhini/opencv/2.4.2static/lib//libopencv_core.a(persistence.cpp.o): In functionicvClose(CvFileStorage*, std::basic_string, std::allocator >*)': persistence.cpp:(.text._ZL8icvCloseP13CvFileStoragePSs+0x132): undefined reference to gzclose' /home/nandhini/opencv/2.4.2static/lib//libopencv_core.a(persistence.cpp.o): In functioncvOpenFileStorage': persistence.cpp:(.text.cvOpenFileStorage+0x1b0): undefined reference to gzrewind' persistence.cpp:(.text.cvOpenFileStorage+0x6b6): undefined reference togzclose' persistence.cpp:(.text.cvOpenFileStorage+0x734): undefined reference to gzopen' persistence.cpp:(.text.cvOpenFileStorage+0xcd4): undefined reference togzclose' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In function cv::JasperInitializer::~JasperInitializer()': grfmt_jpeg2000.cpp:(.text._ZN2cv17JasperInitializerD2Ev[_ZN2cv17JasperInitializerD5Ev]+0x4): undefined reference tojas_cleanup' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In function cv::Jpeg2KDecoder::close()': grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder5closeEv+0x8): undefined reference tojas_stream_close' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder5closeEv+0x14): undefined reference to jas_image_destroy' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In functioncv::Jpeg2KDecoder::readHeader()': grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder10readHeaderEv+0xe): undefined reference to jas_stream_fopen' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder10readHeaderEv+0x1e): undefined reference tojas_image_decode' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In function cv::Jpeg2KDecoder::readData(cv::Mat&)': grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x5c): undefined reference tojas_image_getcmptbytype' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x68): undefined reference to jas_image_getcmptbytype' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x74): undefined reference tojas_image_getcmptbytype' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0xb8): undefined reference to jas_image_getcmptbytype' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x126): undefined reference tojas_matrix_create' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x13e): undefined reference to jas_image_readcmpt' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x16e): undefined reference tojas_matrix_destroy' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x184): undefined reference to jas_cmprof_createfromclrspc' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x194): undefined reference tojas_image_chclrspc' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x1a2): undefined reference to jas_image_destroy' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x1ac): undefined reference tojas_cmprof_destroy' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KDecoder8readDataERNS_3MatE+0x220): undefined reference to jas_cmprof_destroy' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In functioncv::Jpeg2KEncoder::writeComponent8u(void*, cv::Mat const&)': grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder16writeComponent8uEPvRKNS_3MatE+0x1c): undefined reference to jas_matrix_create' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder16writeComponent8uEPvRKNS_3MatE+0x86): undefined reference tojas_image_writecmpt' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder16writeComponent8uEPvRKNS_3MatE+0xa0): undefined reference to jas_matrix_destroy' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In functioncv::Jpeg2KEncoder::writeComponent16u(void*, cv::Mat const&)': grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder17writeComponent16uEPvRKNS_3MatE+0x1c): undefined reference to jas_matrix_create' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder17writeComponent16uEPvRKNS_3MatE+0x86): undefined reference tojas_image_writecmpt' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder17writeComponent16uEPvRKNS_3MatE+0xa0): undefined reference to jas_matrix_destroy' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In functioncv::Jpeg2KEncoder::write(cv::Mat const&, std::vector > const&)': grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x5a): undefined reference to jas_image_create' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x8c): undefined reference tojas_image_destroy' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0xbe): undefined reference to jas_stream_fopen' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0xcc): undefined reference tojas_image_strtofmt' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0xda): undefined reference to jas_image_encode' grfmt_jpeg2000.cpp:(.text._ZN2cv13Jpeg2KEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0xe8): undefined reference tojas_stream_close' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg2000.cpp.o): In function _GLOBAL__sub_I_grfmt_jpeg2000.cpp': grfmt_jpeg2000.cpp:(.text.startup._GLOBAL__sub_I_grfmt_jpeg2000.cpp+0x2): undefined reference tojas_init' /home/nandhini/opencv/2.4.2static/lib//libopencv_imgproc.a(templmatch.cpp.o): In function cv::crossCorr(cv::Mat const&, cv::Mat const&, cv::Mat&, cv::Size_<int>, int, cv::Point_<int>, double, int)': templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x318): undefined reference tocv::getOptimalDFTSize(int)' templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x33c): undefined reference to cv::getOptimalDFTSize(int)' templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x7c4): undefined reference tocv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)' templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0xefc): undefined reference to cv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)' templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0xf66): undefined reference tocv::mulSpectrums(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, int, bool)' templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0xf8e): undefined reference to cv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_png.cpp.o): In functioncv::PngDecoder::readDataFromBuf(void*, unsigned char*, unsigned int)': grfmt_png.cpp:(.text._ZN2cv10PngDecoder15readDataFromBufEPvPhj+0xc): undefined reference to png_get_io_ptr' grfmt_png.cpp:(.text._ZN2cv10PngDecoder15readDataFromBufEPvPhj+0x10a): undefined reference topng_error' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_png.cpp.o): In function cv::PngDecoder::close()': grfmt_png.cpp:(.text._ZN2cv10PngDecoder5closeEv+0x26): undefined reference topng_destroy_read_struct' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_png.cpp.o): In function cv::PngDecoder::readHeader()': grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0x18): undefined reference topng_create_read_struct' grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0x22): undefined reference to png_create_info_struct' grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0x2a): undefined reference topng_create_info_struct' grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0x6a): undefined reference to png_set_longjmp_fn' grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0xae): undefined reference topng_init_io' grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0xd8): undefined reference to png_read_info' grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0xf0): undefined reference topng_get_IHDR' grfmt_png.cpp:(.text._ZN2cv10PngDecoder10readHeaderEv+0x166): undefined reference to png_set_read_fn' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_png.cpp.o): In functioncv::PngEncoder::write(cv::Mat const&, std::vector > const&)': grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x18): undefined reference to png_create_write_struct' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x7a): undefined reference topng_create_info_struct' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x9e): undefined reference to png_set_longjmp_fn' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0xce): undefined reference topng_set_write_fn' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x14a): undefined reference to png_set_compression_mem_level' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x158): undefined reference topng_set_compression_strategy' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x19a): undefined reference to png_set_IHDR' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x1ae): undefined reference topng_write_info' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x1ba): undefined reference to png_set_bgr' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x1ce): undefined reference topng_set_swap' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x208): undefined reference to png_write_image' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x21c): undefined reference topng_write_end' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x22e): undefined reference to png_destroy_write_struct' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x284): undefined reference topng_init_io' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x2c6): undefined reference to png_set_filter' grfmt_png.cpp:(.text._ZN2cv10PngEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x2d4): undefined reference topng_set_compression_level' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_png.cpp.o): In function cv::PngDecoder::readData(cv::Mat&)': grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x8c): undefined reference topng_set_longjmp_fn' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0xfa): undefined reference to png_set_gray_to_rgb' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x102): undefined reference topng_read_update_info' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x126): undefined reference to png_read_image' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x12e): undefined reference topng_read_end' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x14e): undefined reference to png_set_palette_to_rgb' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x16a): undefined reference topng_set_rgb_to_gray' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x170): undefined reference to png_set_bgr' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x178): undefined reference topng_set_strip_alpha' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x180): undefined reference to png_set_swap' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x18c): undefined reference topng_set_expand_gray_1_2_4_to_8' grfmt_png.cpp:(.text._ZN2cv10PngDecoder8readDataERNS_3MatE+0x194): undefined reference to png_set_strip_16' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_png.cpp.o): In functioncv::PngEncoder::writeDataToBuf(void*, unsigned char*, unsigned int)': grfmt_png.cpp:(.text._ZN2cv10PngEncoder14writeDataToBufEPvPhj+0x16): undefined reference to png_get_io_ptr' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg.cpp.o): In function_ZN2cvL16my_jpeg_load_dhtEP22jpeg_decompress_structPhPP9JHUFF_TBLS5_.constprop.30': grfmt_jpeg.cpp:(.text.unlikely._ZN2cvL16my_jpeg_load_dhtEP22jpeg_decompress_structPhPP9JHUFF_TBLS5_.constprop.30+0xa4): undefined reference to jpeg_alloc_huff_table' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg.cpp.o): In functioncv::JpegEncoder::write(cv::Mat const&, std::vector > const&)': grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x6e): undefined reference to jpeg_CreateCompress' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x78): undefined reference tojpeg_std_error' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0xdc): undefined reference to jpeg_destroy_compress' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x194): undefined reference tojpeg_set_defaults' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x1a2): undefined reference to jpeg_set_quality' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x1ae): undefined reference tojpeg_start_compress' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x1f6): undefined reference to jpeg_write_scanlines' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x208): undefined reference tojpeg_finish_compress' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x25e): undefined reference to jpeg_stdio_dest' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x2a6): undefined reference tojpeg_write_scanlines' grfmt_jpeg.cpp:(.text._ZN2cv11JpegEncoder5writeERKNS_3MatERKSt6vectorIiSaIiEE+0x2fa): undefined reference to jpeg_write_scanlines' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg.cpp.o): In functioncv::JpegDecoder::close()': grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder5closeEv+0xa): undefined reference to jpeg_destroy_decompress' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg.cpp.o): In functioncv::JpegDecoder::readData(cv::Mat&)': grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder8readDataERNS_3MatE+0x90): undefined reference to jpeg_start_decompress' grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder8readDataERNS_3MatE+0x10a): undefined reference tojpeg_read_scanlines' grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder8readDataERNS_3MatE+0x15a): undefined reference to jpeg_finish_decompress' /home/nandhini/opencv/2.4.2static/lib//libopencv_highgui.a(grfmt_jpeg.cpp.o): In functioncv::JpegDecoder::readHeader()': grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder10readHeaderEv+0x20): undefined reference to jpeg_std_error' grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder10readHeaderEv+0x56): undefined reference tojpeg_CreateDecompress' grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder10readHeaderEv+0x92): undefined reference to jpeg_stdio_src' grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder10readHeaderEv+0x9a): undefined reference tojpeg_read_header' grfmt_jpeg.cpp:(.text._ZN2cv11JpegDecoder10readHeaderEv+0x13c): undefined reference to jpeg_resync_to_restart' collect2: ld returned 1 exit status

1

1 Answers

6
votes

The order in which libraries are linked matters! This might be the problem.