我创建了一个新问题,因为我和this one的问题基本相同,但我尝试使用此命令编译使用S2i Harpia自动生成的C示例(不是C ++):
gcc test.c `pkg-config --libs --cflags opencv` -o test
编译由于this problem而失败,因此如果我使用“.mm”扩展名重命名源文件,则编译成功完成。 但是,我从头开始安装了所有东西(我正在开始一个新项目)并且它从一开始就不起作用;相反,我想使用通常的“.c”文件。
我正在编写的代码是C - 而不是Objective-C而不是C ++ - 如何告诉编译器使用“旧的”OpenCV C接口?
编辑:最新的Ubuntu 12.04没问题。
答案 0 :(得分:0)
使用以下命令,它对我有用:
gcc `pkg-config --cflags opencv` opencv.c -o open_cv `pkg-config --libs opencv`
答案 1 :(得分:0)
我尝试使用Harpia,并编译自动生成的源代码。我有同样的问题。我成功将gcc
替换为g++
:
g++ pkg-config --cflags opencv test.c -o test pkg-config --libs opencv
我从这个示例中了解到,gcc
仅适用于C
代码,g++
适用于C++
代码。
答案 2 :(得分:0)
您应该将库放在行的末尾。
gcc test.c `pkg-config --cflags opencv` -o test `pkg-config opencv --libs`
我花了三天时间安装并重新安装opencv和dependancies,直到我发现问题与gcc有关。不知何故,你在命令args中编写内容的顺序现在非常重要。
编辑:问题不在于旧接口。编译器没有正确链接。