【发布时间】:2015-08-14 15:29:40
【问题描述】:
我正在尝试使用 Visual Studio 2015 RC 编译共享对象 (.so)。
我正在链接我的 stdafx.h 中的 Opus 编解码器库:
#pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\celt.lib")
#pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\opus.lib")
#pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\silk_common.lib")
#pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\silk_fixed.lib")
#pragma comment(lib, "..\\..\\opus-1.1-beta\\win32\\VS2010\\Win32\\Debug\\silk_float.lib")
我收到链接器错误:
链接器命令失败,退出代码为 1(使用 -v 查看 调用)SharedObject1 C:\Users\MyUser\Documents\Visual Studio 2015\Projects\SharedObject1\SharedObject1\clang.exe 1
谁能告诉我如何调查那里可能出了什么问题? 我应该在哪里声明这个“-v”?
在跨平台项目中使用 .libs 不好吗?我想知道为什么每个人都在谈论 .a 文件,.so,但从不谈论 .libs。
编辑:如果有人愿意看,我已经上传了我的小示例项目here。
【问题讨论】:
-
您在硬盘上找到这些文件了吗? vs2010 位似乎很奇怪。
-
是的,他们在那里。我还使用 VS2015 编译了它们(工作正常!),但这并没有改变任何东西。我收到相同的链接器错误。当我重命名一个库以使路径不再正确时,我得到一个不同的错误,所以我确信 VS2015 应该找到该库。
-
@kfsone 没那么容易,因为它是一个链接和编译的链条。
-
@tmighty,您还在尝试为 Android 构建应用程序吗?如果是,您需要构建(或查找)
.a库。.lib仅适用于 Windows。另外,在下载您的项目并运行它时,我收到了另一个错误,clang.exe : error : no such file or directory: '..\..\..\voice\opuscodec.cpp'您的上传似乎不完整。
标签: c++ android-ndk cross-platform clang visual-studio-2015