【问题标题】:How to link a C project with a C++ static library(using opencv) in eclipse如何在 Eclipse 中将 C 项目与 C++ 静态库(使用 opencv)链接
【发布时间】:2017-04-08 06:27:25
【问题描述】:

我在 Eclipse 中创建了一个使用 opencv 的 c++ 静态库。它构建得很好,我想将它包含在同一工作区的另一个 c 项目中。

尝试

1)我在属性->c/c++ build->setting->GCC C编译器->包含->"项目路径"中包含了库路径。

2)properties->c/c++ build->setting ->GCC C Linker-> Libraries ->Liraries(-i)->"库名称" 3).properties->c/c++ build->setting ->GCC C Linker-> Libraries ->Liraries(-i)->"lib的路径"

但是,这在运行 c 项目时不起作用,找不到给出错误的静态库函数 -“未定义的函数引用”

提出解决问题的方法。 提前致谢。

【问题讨论】:

  • 一般来说,您必须为您的库提供一个可以从 C 调用的接口。这意味着 C 风格的函数,而不是 C++ 函数。然后你必须确保 C 编译器和 C++ 编译器在编译代码时这些函数的名称是一致的;阅读有关 extern "C" 的信息。
  • 谢谢皮特,我已经在函数声明中使用了 extern "C"。我已经在 windows 上使用 Visual Studio 检查了代码,它工作正常。

标签: c++ c eclipse opencv static


【解决方案1】:

得到答案。

这些是需要包含的文件 “${workspace_loc:/staticLibrary}” MSDK/包含 /IPP_Legacy/x64/包括 Levmar/x64/包括 /opencv/lib opengl/x64/include/GL 正方体/x64/包括/正方体 freeGLUT/x64/include/GL /ffmpeg/x64/include/libavcodec compilers_and_libraries_2016.3.210/linux/ipp/include compilers_and_libraries_2016.3.210/linux/mkl/include compilers_and_libraries_2016.3.210/linux/tbb/include compilers_and_libraries_2016.3.210/linux/daal/include

在这些包含之后,我遇到了一个错误 /usr/lib/x86_64-linux-gnu/libstdc++.so.6:添加符号时出错:命令行中缺少 DSO 我从链接中获得了帮助 http://i0.wp.com/omtlab.com/wp-content/uploads/2013/07/4.png

现在程序运行正常 谢谢

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多