g++ 无法 link OpenAL 库
g++ unable to link OpenAL Libraries
我在编译以下代码时遇到问题
#include <AL/al.h>
#include <AL/alc.h>
#include <iostream>
int checkEnumerationSupport() {
ALboolean enumeration;
enumeration = alcIsExtensionPresent(NULL, "ALC_ENUMERATION_EXT");
if (enumeration == AL_FALSE) {
// enumeration not supported
std::cout << "enumerating devices NOT supported\n";
} else {
// enumeration supported
std::cout << "enumerating devices supported\n";
};
return 0;
}
int main() {
checkEnumerationSupport();
}
使用下面的命令。
g++ test.cpp -o test
我收到以下消息:
/tmp/ccEN7YAp.o: In function `checkEnumerationSupport()':
test.cpp:(.text+0x13): undefined reference to `alcIsExtensionPresent'
collect2: error: ld returned 1 exit status
意识到库链接不正确,我尝试将 g++ 行更改为
g++ -L/usr/lib/ test.cpp -o test -lal -lalc
给我以下信息:
/usr/bin/ld: cannot find -lal
/usr/bin/ld: cannot find -lalc
collect2: error: ld returned 1 exit status
我在 Linux Mint 17.2 和 Ubuntu 14.04.
上进行了测试
有谁知道如何正确编译代码?
我们在评论中得出的答案是让 Brian link 使用 -lopenal
而不是 -lal
和 -lalc
我在编译以下代码时遇到问题
#include <AL/al.h>
#include <AL/alc.h>
#include <iostream>
int checkEnumerationSupport() {
ALboolean enumeration;
enumeration = alcIsExtensionPresent(NULL, "ALC_ENUMERATION_EXT");
if (enumeration == AL_FALSE) {
// enumeration not supported
std::cout << "enumerating devices NOT supported\n";
} else {
// enumeration supported
std::cout << "enumerating devices supported\n";
};
return 0;
}
int main() {
checkEnumerationSupport();
}
使用下面的命令。
g++ test.cpp -o test
我收到以下消息:
/tmp/ccEN7YAp.o: In function `checkEnumerationSupport()':
test.cpp:(.text+0x13): undefined reference to `alcIsExtensionPresent'
collect2: error: ld returned 1 exit status
意识到库链接不正确,我尝试将 g++ 行更改为
g++ -L/usr/lib/ test.cpp -o test -lal -lalc
给我以下信息:
/usr/bin/ld: cannot find -lal
/usr/bin/ld: cannot find -lalc
collect2: error: ld returned 1 exit status
我在 Linux Mint 17.2 和 Ubuntu 14.04.
上进行了测试有谁知道如何正确编译代码?
我们在评论中得出的答案是让 Brian link 使用 -lopenal
而不是 -lal
和 -lalc