0

我正在尝试编译一个简单的 hello world 类型程序,该程序在 MPI 初始化时使用 OpenCv 读取图像文件。它适用于 gcc (mpicc),但我正在尝试使用 craycc,因为我不会进入。当我这样做时,我收到一个错误,即找不到所有库。它似乎在寻找一条奇怪的道路。

谁能猜出这里发生了什么?我的 pkg-config opencv.pc 文件会给出错误的路径吗?typedef 错误是否会触发此错误(当我找到该行并将其注释掉时,警告会因缺少的库而消失)?

我会试着睡在上面,看看会发生什么。感谢您花时间阅读这些人,如果我发现任何东西,我一定会报告回来。

@hector-xe6-7:~/work/disparity> cc `pkg-config --cflags --libs opencv` hello.c -o hello

CC-301 craycc: WARNING File = /home/d34/d34/s1138832/work/OpenCV-2.3/include/opencv2/core/types_c.h, Line = 159
  The indicated "typedef" name has already been declared (with same type).

  typedef unsigned short ushort;
                         ^

Total warnings detected in hello.c: 1
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_core
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_imgproc
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_highgui
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_ml
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_video
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_features2d
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_calib3d
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_objdetect
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_contrib
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_legacy
/opt/cray/cce/8.0.4/cray-binutils/x86_64-unknown-linux-gnu/bin/ld: cannot find -lopencv_flann
4

1 回答 1

1

通过在编译时添加 -dynamic 标志解决了这个问题。

于 2012-07-29T16:01:59.993 回答