【问题标题】:pkg-config not working when compiling an OpenCV program with two objects编译具有两个对象的 OpenCV 程序时,pkg-config 不起作用
【发布时间】:2014-07-22 13:32:06
【问题描述】:

我编写了一个包含 main.cpp 和 walker.cpp 的 OpenCV 程序。我想编译它们,所以我做了以下操作:

g++ -c -Wall `pkg-config --cflags opencv` main.cpp -o main.o
g++ -c -Wall `pkg-config --cflags opencv` pedestrian.cpp -o pedestrian.o
g++ `pkg-config --libs opencv` pedestrian.o main.o -o detect

在第三条语句之后,我使用的每个 OpenCV 命令都被视为未定义的引用。我不知道为什么会发生这种情况,因为其他单对象程序与 pkg-config 一起工作得很好。我检查了它是否是名称空间问题,但也不是。任何帮助将不胜感激。

【问题讨论】:

    标签: opencv compilation linker g++ pkg-config


    【解决方案1】:

    尝试将最后一行的顺序更改为:

    g++ -o detect pedestrian.o main.o `pkg-config --libs opencv` 
    

    这应该可行。链接 .o 文件时的顺序很重要。当链接器在任何 .o 中找到未知的 OpenCV 符号时,它会在以下链接元素中查找其定义(即在元素右侧中)。

    【讨论】:

    • 那行得通。我不知道链接器的顺序很重要。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2019-09-25
    相关资源
    最近更新 更多