用C和Fmod为Android编译终端mp3player:函数得到未定义的引用



所有函数都抛出未定义的引用错误。

这是我的代码:

/*
terminal mp3 player android
requirements:
c4droid terminal fmod
requires:
copy fmod api lowlevel lib armeabi-v7a libs to lib dir
compile:
gcc -I./fmod/api/lowlevel/inc -L./fmod/api/lowlevel/lib/ mp3player.c -o mp3player 
*/
#include <fmod.h>
#include <stdio.h>
static FMOD_SYSTEM * system;
static FMOD_SOUND * audioStream;
int main()
{   
// Create FMOD interface object
FMOD_System_Create(&system);
FMOD_System_SetDSPBufferSize(system, 1000, 2);
FMOD_Channel_SetFrequency(0, 44100);
// Initialise FMOD
FMOD_System_Init(system, 64, FMOD_INIT_NORMAL, 0);
// Load Mp3
FMOD_System_CreateStream(system,  "/storage/emulated/0/playlist/starat16.mp3", FMOD_DEFAULT, 0, &audioStream);
// Play mp3
FMOD_System_PlaySound(system, audioStream, 0, 0, 0);
return 0;
}

fmod.jar可以解决这个问题。如何在c4droid终端上使用它或GCC的替代品?还是应该将C与libasound一起使用?Sdl混音器工作良好,但它同时只播放一个MP3,并通过窗口捕获终端。

我在编译命令的末尾添加了-lfmod。现在它给出了:fmod依赖于libstdc++。安装它。

我做了一些更改,最终代码:

/*
terminal mp3 player android
requirements:
c4droid terminal fmod and install some dependencies
requires:
copy fmod api lowlevel lib armeabi-v7a libs to lib dir
compile:
gcc -I./fmod/api/lowlevel/inc -L./fmod/api/lowlevel/lib/ mp3player.c -o mp3player -lfmod
*/

#include <fmod.h>
#include <stdio.h>

static FMOD_SYSTEM * system;
static FMOD_SOUND * audioStream;
static FMOD_BOOL * isplaying;
int main()
{   
// Create FMOD interface object
FMOD_System_Create(&system);
FMOD_System_SetDSPBufferSize(system, 1000, 2);
FMOD_Channel_SetFrequency(0, 44100);
// Initialise FMOD
FMOD_System_Init(system, 64, FMOD_INIT_NORMAL, 0);
// Load Mp3
FMOD_System_CreateStream(system,   "/storage/emulated/0/playlist/starat16.mp3", FMOD_DEFAULT, 0, 
&audioStream);
// Play mp3
FMOD_System_PlaySound(system, audioStream, 0, 0, 0);
isplaying=(FMOD_BOOL *)1;
while(FMOD_Channel_IsPlaying(0, isplaying))
{
}
return 0;
}

不,只需下载并链接编译器的libstdc++标头

编译命令:

gcc-I/storage/semulated/0/下载/fmodlowlatencymp3layer/fmod/api/lowlevel/inc-I/system/inc/-L/storage/semulated/0/下载/Fmodlowlatency ymp3layer/fmod/api.lowlevel/lib/-L/system/lib mp3player.c-o mp3player-lfmod-log-lm-lsdc++

all。因此libs需要头,请将它们下载到/system/inc,并使用-I指令将它们链接到gcc。

已解决!

下载并链接fmod:的这些标头或dev数据包依赖项

liblog androidlibm androidlibstdc++安卓

额外:fmod来源:为android 7和8 编译

最新更新