【问题标题】:c++ compile error after upgrading from ubuntu 10.10 to 11.10从 ubuntu 10.10 升级到 11.10 后 c++ 编译错误
【发布时间】:2012-01-27 02:01:17
【问题描述】:

我有一个在 ubuntu 10.10 上运行和编译的 c++ 程序。但是,当我升级到 11.10 时,我开始收到此错误消息:

g++ -rdynamic -o ../../../bin/camera Camera.o main.o moc_Camera.o    -L/home/myusername/Desktop/project/lib -L/usr/lib/i386-linux-gnu -ljpeg -lcfitsio -lavcodec -lavformat -lswscale -lfftw3 -lfftw3f -lcv -lgdal1.7.0 -lmatrox_fake -lbacktrace -lexceptions -limage -limage_display -lio -ljpeg_image -llog -lmetadata -lpipe -lpipebrowser -lplumber -lplumbing -lqt -lserial -ltime -lwebcam -Wl,-R/home/myusername/Desktop/project/lib -lQtXml -lQtGui -lQtCore -lpthread 
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_resync_to_restart'
/home/myusername/Desktop/project/lib/libplumber.so: undefined reference to `company::pipe::PipeBrowser::PipeBrowser()'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_std_error'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_CreateDecompress'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_start_compress'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_read_header'
/home/myusername/Desktop/project/lib/libqt.so: undefined reference to `ExceptionHandler::ExceptionHandler()'
/home/myusername/Desktop/project/lib/liblog.so: undefined reference to `Backtrace::add(void*)'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_destroy_decompress'
/home/myusername/Desktop/project/lib/libwebcam.so: undefined reference to `Exception::Exception(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/myusername/Desktop/project/lib/libimage.so: undefined reference to `Exception::Exception(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/myusername/Desktop/project/lib/libimage.so: undefined reference to `Exception::~Exception()'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_finish_compress'
/home/myusername/Desktop/project/lib/liblog.so: undefined reference to `Backtrace::~Backtrace()'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_destroy_compress'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_finish_decompress'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_set_defaults'
/home/myusername/Desktop/project/lib/liblog.so: undefined reference to `Backtrace::print(std::basic_ostream<char, std::char_traits<char> >&) const'
/home/myusername/Desktop/project/lib/libimage.so: undefined reference to `Exception::~Exception()'
/home/myusername/Desktop/project/lib/libimage.so: undefined reference to `typeinfo for Exception'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_start_decompress'
/home/myusername/Desktop/project/lib/libplumber.so: undefined reference to `ExceptionHandler::handle(Exception&)'
/home/myusername/Desktop/project/lib/liblog.so: undefined reference to `Backtrace::trace()'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_write_scanlines'
/home/myusername/Desktop/project/lib/liblog.so: undefined reference to `Backtrace::Backtrace()'
/home/myusername/Desktop/project/lib/libimage.so: undefined reference to `Exception::report(std::basic_ostream<char, std::char_traits<char> >&) const'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_CreateCompress'
/home/myusername/Desktop/project/lib/libjpeg_image.so: undefined reference to `jpeg_read_scanlines'
/home/myusername/Desktop/project/lib/libimage.so: undefined reference to `IOException::IOException(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/myusername/Desktop/project/lib/liblog.so: undefined reference to `checkIO(std::basic_ios<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: ld returned 1 exit status
make: *** [../../../bin/camera] Error 1

所有的库都在那里.. 所以我不确定为什么会有所有这些未定义的引用。升级到 11.10 后是否有其他人在使用 libjpeg 库时遇到过这个问题,或者知道为什么升级会导致这个问题?

【问题讨论】:

  • 我猜这个库是升级到新版本了吗?运行 nm 查看新库中存在哪些符号。

标签: c++ qt ubuntu-10.10 libjpeg ubuntu-11.10


【解决方案1】:

根据这个bug report找到的信息,重新安装JPEG库可能会解决问题。错误的标题是 **libwebkit-1.0-2: Undefined symbol: jpeg_resync_to_restart* 报告者如何解决这个问题:

我的系统似乎坏了。重新安装 libjpeg62 后, libjpeg.so.62 按预期成为 libjpeg.so.62.0.0 的符号链接。 我的升级路径一定有问题,但不是 libwebkit 或 libjpeg 的问题。所以,关闭这个误报 现在出问题了。

【讨论】:

  • 我卸载它并重新安装。它仍然给我同样的错误。
【解决方案2】:

发现所有 .so 库在编译时都缺少 -l(libname) 用于所有包含的库,这就是打印出所有未定义错误的原因。仍然想知道为什么它在 10.10 和 11.10 上没有它们就可以工作......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 2014-08-10
    • 1970-01-01
    • 2018-11-11
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多