首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++库链接FMOD

C++库链接FMOD
EN

Stack Overflow用户
提问于 2015-05-31 05:05:44
回答 1查看 1.3K关注 0票数 2

目前,我正试图用FMOD音频库编写一个小程序,但很难理解如何链接它们。

我有一个小程序,如下所示

代码语言:javascript
复制
#include "/home/me/fmod_test/api/lowlevel/inc/fmod.h"
#include "/home/me/fmod_test/api/lowlevel/inc/fmod.hpp"
#include "/home/me/fmod_test/api/lowlevel/inc/fmod_errors.h"

#include <iostream>
using namespace std;


int main()
{
FMOD::System     *system; 
FMOD::Sound      *sound1;

FMOD::System_Create(&system);              // create an instance of the game engine
}

但是当我尝试使用

代码语言:javascript
复制
g++ -L/home/me/fmod_test/api/lowlevel/lib/x86_64 -lfmod -lfmodL test.cpp -o test

我遇到了这样的错误

代码语言:javascript
复制
In function `FMOD::System_Create(FMOD::System**)':
test.cpp:(.text._ZN4FMOD13System_CreateEPPNS_6SystemE[_ZN4FMOD13System_CreateEPPNS_6SystemE]+0x14): undefined reference to `FMOD_System_Create'

我包括了屏幕截图,以表明这些库和标题确实存在于我的系统中。

有趣的是,如果我注释掉System_Create调用FMOD::System和声音初始化仍然很好。

我的链接是否不正确,我不明白为什么这不起作用(是的,我使用的是x86_64体系结构,根据-a的输出)

EN

回答 1

Stack Overflow用户

发布于 2015-05-31 16:07:16

g++ -L/home/me/fmod_test/api/lowlevel/lib/x86_64 -lfmod -lfmodL test.cpp -o test

此命令行是向后的。正如在this answer中所解释的,库必须遵循命令行中的源和对象文件(答案说,对于共享库来说,顺序并不重要,但这部分答案是错误的(至少对于某些链接程序))。尝试:

代码语言:javascript
复制
g++ -L/home/me/fmod_test/api/lowlevel/lib/x86_64 test.cpp -o test -lfmod -lfmodL 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30554055

复制
相关文章

相似问题

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