Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用VS17上的LINK1181链接库失败_C++_Visual Studio 2017_Libraries_Visual Studio 2017 Build Tools_Adtf - Fatal编程技术网

C++ 使用VS17上的LINK1181链接库失败

C++ 使用VS17上的LINK1181链接库失败,c++,visual-studio-2017,libraries,visual-studio-2017-build-tools,adtf,C++,Visual Studio 2017,Libraries,Visual Studio 2017 Build Tools,Adtf,我试图在我的项目中使用ADTF流媒体库。当我包含lib时,我得到LNK181错误。该库附带了头文件、lib文件和dll文件 我在C/C++->General->Additional Include目录中添加了路径 此外,我在Linker->Input->附加依赖项中添加了库 这也是错误截图 更新:我已将dll和LIB的位置更改为我的项目路径,并再次包含它。它现在并不抱怨自由党本身。现在我得到一个错误LNK2001。我相信这也是一个链接器错误 在这里,一切都错了 更新2:在我看到构建的完

我试图在我的项目中使用ADTF流媒体库。当我包含lib时,我得到LNK181错误。该库附带了头文件、lib文件和dll文件

我在C/C++->General->Additional Include目录中添加了路径

此外,我在Linker->Input->附加依赖项中添加了库

这也是错误截图

更新:我已将dll和LIB的位置更改为我的项目路径,并再次包含它。它现在并不抱怨自由党本身。现在我得到一个错误LNK2001。我相信这也是一个链接器错误

在这里,一切都错了

更新2:在我看到构建的完整日志之后。我想这意味着链接器找不到我的库。是这样吗

主要应用程序代码如下所示:

#include "pch.h"
#include <iostream>
#include "adtf_streaming.h"
using namespace adtfstreaming;

int main()
{
    std::cout << "Hello World!\n"; 
    IADTFFileReader *pFileReader = IADTFFileReader::Create();

}
#包括“pch.h”
#包括
#包括“adtf_streaming.h”
使用名称空间adtfstreaming;
int main()
{

std::cout您需要在链接器属性中指定其他库目录,以设置包含lib文件的目录。您不需要在其他依赖项中包含lib,因为您是在lib头文件
#pragma comment(lib,“adtfstreamingD_290.lib”)中执行此操作的
在调试中编译应用程序时,或
在发行版中编译时编译pragma comment(lib,“adtfstreaming_290.lib”)
时。但您需要指定这些lib在其他库目录中的位置


如果您看到lib include文件,您会看到如果定义了STREAMINGLIB#u EXPORTS宏,则使用DOEXPORT修饰符的所有函数都是导出函数
#define DOEXPORT uu declspec(dllexport)
。但是如果未定义此宏
#define DOEXPORT u declspec(dllimport)
,相同的函数都是导入的函数。这是因为dll需要指定此函数为导出函数,所以在dll代码中有人定义了此宏。因为在代码中您没有(而且您不能这样做)定义此宏时,此函数为导入函数。

您需要在链接器属性中指定其他库目录,以设置包含lib文件的目录。您不需要将lib包含在其他依赖项中,因为您是在lib头文件
#pragma comment(lib,“adtfstreamingD_290.lib”)
当您在调试中编译应用程序时,或在发行版中编译应用程序时,
\pragma comment(lib,“adtfstreaming_290.lib”)
时。但您需要指定这些lib在其他库目录中的位置


如果您看到lib include文件,您会看到如果定义了STREAMINGLIB#u EXPORTS宏,则使用DOEXPORT修饰符的所有函数都是导出函数
#define DOEXPORT uu declspec(dllexport)
。但是如果未定义此宏
#define DOEXPORT u declspec(dllimport)
,相同的函数都是导入的函数。这是因为dll需要指定此函数为导出函数,所以在dll代码中有人定义了此宏。因为在代码中您没有(而且您不能这样做)定义此宏时,此函数为导入函数。

ADTF流媒体库需要VS 2010,与其他版本不兼容!因此请确保将其与v100构建工具一起使用。或者更改为ADTF文件库a.k.a.IFHD,它是v141兼容的后续函数,也可与ADTF 2.x和ADTF 3.x一起使用。请注意,该库是由完全开放源代码许可。有关某些概述,请参阅。ADTF流媒体库需要VS 2010,并且与其他版本不兼容。因此,请确保将其与v100构建工具一起使用。或者更改为ADTF文件库a.k.a.IFHD,它是v141兼容的后续版本,也可与ADTF 2.x和ADTF 3.x一起使用。请注意,该库是完整的ely开放源码许可证。请参阅以获取一些概述。我找到了问题的答案。嗯,问题的组合

该库的构建仅支持0x86机器。我再次构建它以支持0x64,它成功了


顺便说一句,它在Visual Studio 2017上也起了作用,不幸的是,文档很差,而且缺乏信息。

我找到了问题的答案。好吧,一系列问题

该库的构建仅支持0x86机器。我再次构建它以支持0x64,它成功了


另外,它也在Visual Studio 2017上运行,不幸的是,文档很差,并且缺乏信息。

1.LIB真的存在于该位置吗?2.您是否为所有项目配置设置了路径和文件?例如,发布和调试?您可能为一个项目配置设置了路径和文件,但没有为另一个项目配置设置,这是发布时的常见疏忽已配置但未调试您只需将发布或调试库添加到每个配置中,而不是同时添加发布和调试。因此,为发布配置添加发布库,为调试配置添加调试库在发布/调试中是否编译正常,或者两者都失败?您需要查看相关错误,因为您的问题现在已转到dif其他问题。此外,如果没有代码来重现错误,我和其他人将很难帮助您。您可以向链接器高级选项添加标志“/VERBOSE”,以获取链接器的完整输出,以检查路径等是否正确。您应该将lib文件夹路径添加到linker->General->”“附加库目录”而不是“附加包含目录”"。您已将您的库路径添加到包含路径中,您的库路径位于“C/C++->Linker->General”下,此页面下是“其他库目录”的条目。请将您的库路径添加到此1。库是否确实存在于该位置?2.您是否为所有项目配置设置了路径和文件?例如,发布和调试?您可能已设置了它适用于一个项目配置,但不适用于oth
#ifndef _ADTF_STREAMING_LIBRARY_DLL_ 
#define _ADTF_STREAMING_LIBRARY_DLL_

#ifdef WIN32
    #ifdef STREAMINGLIB_EXPORTS
        #pragma message ("Create ADTF Streaming Library ")
        // export symbols
        #define DOEXPORT __declspec( dllexport )
    #else
        #pragma message ("Use dynamic ADTF Streaming Library ")
        #ifdef _DEBUG
            #pragma comment( lib, "adtfstreamingD_290.lib" )
        #else
            #pragma comment( lib, "adtfstreaming_290.lib" )
        #endif

        #define DOEXPORT __declspec( dllimport )
    #endif
#else
    #ifdef STREAMINGLIB_EXPORTS
        #define DOEXPORT __attribute__ ((visibility("default")))
    #else
        #pragma comment( lib, "adtfstreaming_290.lib" )
        #define DOEXPORT __declspec( dllimport )
    #endif
#endif

//standard includes 
#include <stdlib.h>
#include <string.h>

//adtf base types and errors
#include "adtf_base_ref.h"

//streaming lib version
#include "adtf_streaming_version.h"

//adtf streaming lib package headers
#include "adtf_streaming_pkg.h"

#endif //_ADTF_STREAMING_LIBRARY_DLL_