【问题标题】:How to link a 3rd party C library using gcc in cygwin如何在 cygwin 中使用 gcc 链接第 3 方 C 库
【发布时间】:2017-07-03 21:57:32
【问题描述】:

我有一个第三方 C 库,静态格式 (.lib) 和动态格式 (.dll) 都有自己的导入库 (.lib)。它是 MKL(英特尔数学内核库)。我正在 Windows 7 上使用 cygiwn 64。

简而言之,我试图让一个在 POSIX 世界中工作的编译器与在 Windows 世界中编译的库对话,假设这是可能的。

我想将该库链接为我在 cygwin 中使用 g++ 编译的 C++ 可执行文件的一部分,并且我正在尝试使用导入库与 DLL 链接。

为了简单起见,我省略了文件路径的命令行导致未定义引用错误。

$ g++ main.obj mkl_intel_lp64_dll.lib mkl_sequential_dll.lib mkl_core_dll.lib -o paper.exe 
mkl_intel_lp64_dll.lib: blah, blah, blah: undefined reference to `__GSHandlerCheck'
... and many other similar errors

有谁知道这是否可能,如果可以,怎么做?

谢谢

【问题讨论】:

标签: gcc linker cygwin dllimport intel-mkl


【解决方案1】:

尝试重新排列 g++ 的参数,以便 main.obj 它引用的库之前。

【讨论】:

  • 如果你使用g++,你怎么会有main.obj?没错,这可能无关紧要。
  • @varro,谢谢,这解决了第一个问题,但现在还有许多其他符号未找到,例如__GSHandlerCheck。尝试添加 libcmt,但它没有帮助。
  • @tim18,这只是我在 Makefile 中给目标文件的名称。我可以使用 MingW,但他们发布的 gcc 版本已经很旧了。我需要 6 个或更高版本。
  • @varro,我不得不根据您的建议编辑问题,对此感到抱歉。
猜你喜欢
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 1970-01-01
相关资源
最近更新 更多