我想尝试一下opus,所以我下载了opus 1.1,但是我好像不能把它和我的visual studio 2010 express项目联系起来。我尝试将opus1.1/include路径添加到properties/vc++Directoris/include目录,但链接器仍然抱怨某些函数
error LNK2019: unresolved external symbol _opus_decoder_create referenced in function ...
error LNK2019: unresolved external symbol _opus_decoder_destroy referenced in function...
error LNK2019: unresolved external symbol _opus_encoder_destroy referenced in function...
error LNK2019: unresolved external symbol _opus_encoder_ctl referenced in function...
error LNK2019: unresolved external symbol _opus_encode referenced in function...
error LNK2019: unresolved external symbol _opus_decode referenced in function...任何帮助都会得到重视!
发布于 2014-04-19 18:54:09
opus1.1/win32中有一个.sln文件,用visual studio 2010打开,编译调试发布,生成.lib文件
发布于 2014-09-10 10:16:58
这是因为"Windows“发行版的opusfile是用mingw64编译的,并生成.a链接库,以及传统的.dll文件。因此,没有直接的方法将opusfile与Visual Studio链接起来。
这意味着,正如所提供的,您只能使用mingw64来链接到"Windows“发行版,如果您问我,这对大多数基于Windows的开发人员都没有任何好处。
"./configure && make“是如何构建UNIX风格的软件的,并且需要大量的文本处理支持工具(automake、autoconf、类似Bourne的shell等)以及通常的GCC,而不是Windows上的本机平台编译器。
正确的答案是生成.lib文件,方法是自己将发行版中的所有代码移植到Visual Studio (大量工作),或者通过从DLL生成链接库:http://support.microsoft.com/kb/131313/en-us
注意,一般来说,这是不起作用的--只有当库API是基于C的(不是基于C++的),没有不匹配的分配(在这里你做alloc,库是空闲的,反之亦然),并且生成.dll文件的编译器与Visual Studio兼容时,它才能起作用。
您还可以通过生成一个具有空实现的“存根”库来生成可链接库,并使用其中的.lib,或者可以使用LoadLibrary()和GetProcAddress()使用动态加载。
所以,在构建"windows“版本的库时,libopusfile开发人员并没有对绝大多数基于windows的开发人员提供特别的帮助。
顺便说一下:我自己在这个非常无用的SDK上遇到了问题,我解决了这些问题,并重新打包了Visual Studio的解决方案。这包括必要但未包含的其他头文件,以及从使用dumpbin找到的函数生成.lib可链接库。请注意,这还没有经过广泛的测试,但我有一个基于此的可用的opus文件回放工具:
http://www.enchantedage.com/opusfile-0.6-for-visual-studio
这包括Visual Studio所需的头文件和.lib文件。
发布于 2014-02-22 04:10:52
C++库通常由头文件(用于编译器)和库文件(用于链接器)组成。您只提供了头文件,而没有提供库文件,所以链接器会报错。include路径仅用于头文件,与链接器*无关。
您下载的库可能包含一些*.lib文件。这就是链接器所需的文件。在Visual Studio中,在"VC++目录>库目录“中指定文件的目录(最好在所谓的”属性管理器“窗口中),并在项目设置中,在”链接器>输入>其他依赖项“中指定*.lib文件。
现在的困难在于:您必须确保您的项目使用构建*.lib文件时使用的相同运行时库设置进行编译。例如,如果*.lib文件是使用/MD构建的,则必须执行相同的操作。如果没有以正确的方式(为您)提供*.lib文件,那么您最终将需要自己构建该库。
*实际上,在MSVC中,您可以通过头文件进行自动链接,这是一些Boost库使用的一种技术,但现在让我们忽略这一点。
https://stackoverflow.com/questions/21942099
复制相似问题