【发布时间】:2020-03-03 23:17:13
【问题描述】:
给定以下文件
RsbbDec.exe
Run_RsbbDec.exe
TRSCompress.dll
TRSCompress.lib
以及以下示例代码:
#include <iostream>
#pragma comment(lib, "TRSCompress.lib.")
extern "C" __declspec(dllexport) int Run_RsbbDec(const char* Input_File, int vbr_en, int bitrate , char *ErrMsg);
#define TEXTLEN 1024
int main()
{
char ErrMsg[TEXTLEN];
if(Run_RsbbDec("audio.pcm", 1, 1, ErrMsg))
{
std::cout <<"ok";
}
else
{
std::cout <<"error";
}
}
如何使示例代码工作?我得到的唯一指示是确保 .dll 和 2 个 exe 在同一个目录中。
在我看来,演示代码的重点是运行我认为位于其中一个可执行文件中的 Run_RsbbDec 函数。
运行代码时出现链接器错误:
/tmp/ccuvBnWV.o:main.cpp:(.text+0x2b): undefined reference to `Run_RsbbDec'
我正在使用这个命令编译:
g++ main.c RsbbDec.exe Run_RsbbDec.exe
【问题讨论】:
-
你用什么命令行编译?我认为您的(当前身份不明的)工具链需要被告知将您的 C++ 与其他二进制文件链接。
-
在问题中添加了我用来编译的命令。我以前从未使用其他可执行文件进行编译。我一直只使用我自己的 .cpp 文件。所以我不太确定该怎么做
-
我认为
"TRSCompress.lib."末尾的点不应该在那里。 -
您的输出看起来像 Linux,但 DLL 和 EXE 用于 Windows。那里发生了什么事?你的环境是什么?你没有提供很多细节。
-
我正在使用 Cygwin 在 Windows 上进行编译。如果需要,我可以使用 linux 编译
标签: c++