【发布时间】:2018-06-11 11:18:55
【问题描述】:
我正在尝试在 Eclipse 中为 C++ 设置 PoDoFo
操作系统 - Ubuntu 16.04 LTS
Podofo 链接 - http://podofo.sourceforge.net/download.html
我下载了最新版本并执行了以下步骤
mkdir podofo-build
cd podofo-build
cmake ../podofo
make
su
make install
到目前为止一切正常。 这会在我的 /usr/local/lib 目录中创建一个 libpodofo.a 文件
在 Eclipse 中 在 C++ 链接器下,我将库搜索路径(-L)添加为 /usr/local/lib 在图书馆(-l)中我添加了podofo
然后我为 podofo 运行了一个 Hello world 示例 链接:http://podofo.sourceforge.net/examplehelloworld_cpp.html
全部 构建目标:opencvtest 调用:GCC C++ 链接器 g++ -L/usr/local/lib -L/lib/x86_64-linux-gnu -o"opencvtest" ./src/opencvtest.o ./src/podofo_test.o -lopencv_imgcodecs -lpodofo - lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_flann /usr/bin/ld: /usr/local/lib/libpodofo.a(PdfEncodingFactory.cpp.o): 对符号'pthread_mutexattr_settype@@GLIBC_2.2.5'的未定义引用 //lib/x86_64-linux-gnu/libpthread.so.0:添加符号时出错:命令行中缺少 DSO makefile:45: 目标“opencvtest”的配方失败 collect2:错误:ld 返回 1 个退出状态 make: *** [opencvtest] 错误 1
Ldconfig -p 给了我以下信息: ldconfig -p | grep pthread.so grep:警告:不推荐使用 GREP_OPTIONS;请使用别名或脚本 libpthread.so.0 (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib/x86_64-linux-gnu/libpthread.so.0 libgpgme-pthread.so.11 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgpgme-pthread.so.11
谁能帮我解决这个错误,我应该添加什么配置来解决这个问题,也欢迎任何建议的阅读。
如果需要任何其他信息,请告诉我。提前致谢。
【问题讨论】:
-
您要么需要使用
-pthread标志构建(包括用于链接),要么显式链接pthread库。我敢肯定这里有多个重复项,即使是简单的搜索也应该出现。 -
@Someprogrammerdude 我之前也找到了这个答案,但我很难理解如何在 eclipse 中做到这一点(即在 eclipse 中设置项目属性)
标签: c++ linux eclipse linker podofo