首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Visual win32 .lib中与x64项目一起使用x64

在Visual win32 .lib中与x64项目一起使用x64
EN

Stack Overflow用户
提问于 2015-03-31 18:30:42
回答 2查看 2.4K关注 0票数 0

我有一个C++库(下载的这里)。在库中,有一些".h“头文件、包含代码的".cc”文件和包含在"win32“文件夹中的两个静态".lib”。我只是在Visual 2012 C++中做一个C++项目。

为了使用这个库,我在属性页面的“附加包含目录”中指定了.h文件的路径。在“附加库目录”中,我指定了包含两个".lib“文件的文件夹的路径。在“附加依赖项”中,我将所有".lib“文件的名称放在”附加库目录“中。在“调试”模式下,如果可用,我将使用库的调试版本。

在代码中,我添加了一个#include < brisk.h>,以表示我想使用这个库。我也使用其他库,但它们不会导致错误。

现在,我有一个

代码语言:javascript
复制
"LNK2019 unresolved external symbol "public: __cdecl cv:: ...etc" 

编译时出错。我想知道,这是否是由一些".lib“可能是用win32而不是x64编译的事实造成的。这可能是个错误吗?

如果很明显我做错了什么,请给我小费。我咨询过这个问题,但我不太确定.

编辑:

下面是编译器的输出:

代码语言:javascript
复制
1>------ Build started: Project: BRISK_opencv2, Configuration: Debug x64 ------
1>  BRISK_opencv2.cpp
1>BRISK_opencv2.obj : error LNK2019: unresolved external symbol "public: __cdecl cv::BriskDescriptorExtractor::BriskDescriptorExtractor(bool,bool,float)" (??0BriskDescriptorExtractor@cv@@QEAA@_N0M@Z) referenced in function main
1>BRISK_opencv2.obj : error LNK2019: unresolved external symbol "public: __cdecl cv::BriskFeatureDetector::BriskFeatureDetector(int,int)" (??0BriskFeatureDetector@cv@@QEAA@HH@Z) referenced in function main
1>C:\...\x64\Debug\BRISK_opencv2.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
EN

回答 2

Stack Overflow用户

发布于 2015-03-31 18:34:58

您不能在同一进程中使用32位和64位代码。

链接器应该告诉您,它是否正在跳过您指示它使用的输入文件,因为它的架构不兼容。读取所有链接器输出,而不仅仅是错误。

票数 1
EN

Stack Overflow用户

发布于 2015-03-31 18:38:38

使用

代码语言:javascript
复制
dumpbin win32.lib /headers

以机器开头的行将告诉您它期望什么样的体系结构。

在文件头值的末尾,在可选的头值之前,它会告诉您它是期望32位还是64位。

它可能是64位的库,但是IA64而不是X64。这仍然是不相容的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29375882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档