2012-04-01 68 views
2

我构建opencv 233作为静态库,但是当我在应用程序中使用它时,它在调用cv :: imwrite()时提供链接错误,即tiff,png,jasp库没有链接。这是否意味着我应该将这些我的自我链接到我的应用程序中,或者我是否构建了它。Opencv静态构建,JPEG,PNG,TIFF不静态链接?

我希望3party库是静态包含在opencv_highgui.lib中,而不必在我的应用程序中自己链接它们。

enter image description here

回答

1

在该解决方案中,如果为visual studio 2010配置,则第三方库未设置为链接。将high库项目的链接库依赖项更改为true。

+0

嗯,我想这是因为您的CMake配置错了,但如果不是,您可能希望通过提交错误报告来帮助OpenCV。 +1回答你自己的问题。 – ypnos 2012-04-01 20:08:08

+0

也许我把它设置成了委屈,但我很难搞清楚设置了哪个标志。 (包括我的设置转储) – 2012-04-01 21:34:50

+0

感谢发布。看来你偶然发现了一个OpenCV编译系统的bug,因为你必须手工更改解决方案。 – ypnos 2012-04-01 23:58:43

-2

在cmake的,请确保您有BUILD_3RDPARTY,或不管它被调用,检查。然后OpenCV将从它自己的树中建立lib依赖关系并静态链接到highgui。这是Windows的默认设置。

+0

我没有看到任何BUILD_3RDPARTY,只有WITH_JPPEG,WITH_PNG,我已经检查过这些。 – 2012-04-01 16:43:29

+0

另外,在解决方案中,所有第三方库都是正确构建的,但它们只位于它们自己的文件夹中。 – 2012-04-01 16:45:29

+0

该变量称为OPENCV_BUILD_3RDPARTY_LIBS。在CMake中使用搜索框并不难,是吗? – ypnos 2012-04-01 20:07:29