&引用;总线错误“;使用(非常)简单的opencv程序(使用Mac Os X)

&引用;总线错误“;使用(非常)简单的opencv程序(使用Mac Os X),c,macos,gcc,opencv,C,Macos,Gcc,Opencv,我知道“总线错误”通常是由于编程错误造成的。但我真的看不到三行程序中存在这样的错误: int main(int argc, char** argv) { IplImage *src = cvLoadImage("/tmp/Name.tiff", CV_LOAD_IMAGE_COLOR); IplImage* res = cvCreateImage( cvSize( 2, 2), IPL_DEPTH_8U, 3 ); cvSaveImage("/tmp/image.tiff", src

我知道“总线错误”通常是由于编程错误造成的。但我真的看不到三行程序中存在这样的错误:

int main(int argc, char** argv)
{
  IplImage *src = cvLoadImage("/tmp/Name.tiff", CV_LOAD_IMAGE_COLOR);
  IplImage* res = cvCreateImage( cvSize( 2, 2), IPL_DEPTH_8U, 3 );
  cvSaveImage("/tmp/image.tiff", src);
  return 0;
} 
我用以下方法编译:

gcc -I/Library/Frameworks/OpenCV.framework/Versions/A/Headers /usr/local/lib/libopencv_* test.c gcc-I/Library/Frameworks/OpenCV.framework/Versions/A/Headers/usr/local/lib/libopencv_*test.c 执行时出现总线错误

非常重要:如果我删除第二行(调用
cvCreateImage
),它就可以正常工作


我使用的是opencv 2.3和MacOs 10.8.5,gcc(i686-apple-darwin9-gcc-4.2.1(gcc)4.2.1(apple Inc.build 5566)

您没有验证
IplImage*src=cvLoadImage(“/tmp/Name.tiff”,CV\u LOAD\u IMAGE\u COLOR)成功了。我想它找不到文件,也没有解码,或者其他什么。剩下的一切都是糟糕的工程实践的结果

$ cat src/bus.cpp 
#include <opencv2/opencv.hpp>

int main(int argc, char** argv)
{
  IplImage *src = cvLoadImage("/tmp/Name.tiff", CV_LOAD_IMAGE_COLOR);
  if(src==NULL) {
    printf("There is no /tmp/Name.tiff\n");
    exit(1);
  }
  IplImage* res = cvCreateImage( cvSize( 2, 2), IPL_DEPTH_8U, 3 );
  cvZero(res);
  cvSaveImage("/tmp/Name.tiff", src);
  return 0;
} 
$ 
$ convert ~/ScanImage001.png /tmp/Name.tiff
$ ./bus 
$
$cat src/bus.cpp
#包括
int main(int argc,字符**argv)
{
IplImage*src=cvLoadImage(“/tmp/Name.tiff”,CV\u LOAD\u IMAGE\u COLOR);
如果(src==NULL){
printf(“没有/tmp/Name.tiff\n”);
出口(1);
}
IplImage*res=cvCreateImage(cvSize(2,2),IPL_DEPTH_8U,3);
cvZero(res);
cvSaveImage(“/tmp/Name.tiff”,src);
返回0;
} 
$ 
$convert~/ScanImage001.png/tmp/Name.tiff
美元/辆
$

在Mac上对我有效。

你有stacktrace吗?当然,你也没有使用Mac OS 10.8.5。你是否尝试过使用一个更健全的构建命令行(比如在源文件之后用
-l
指定你需要的库?(那里的头与你指定的库匹配吗?)你的编译器调用很奇怪。为什么不使用
-f
(框架)选项调用gcc呢?它精确地处理框架内的路径和库。对cvLoadImage的调用成功了吗?@user1379617:我不是这么问的。你的头指向你自己安装的吗?(标题在“官方”目录中,库在自定义内容中看起来很奇怪)而你的“链接器”部分,对不起,是疯子。你根本不应该这么做。