作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用irrklang库时遇到问题。我从https://www.ambiera.com/irrklang/downloads.html下载了.zip文件。我有一台配备Mojave 10.14.6的MacBookPro。
我试图编译以下源代码:
#include <stdio.h>
#include <irrKlang.h>
using namespace irrklang;
#pragma comment(lib, "irrKlang.lib") // link with irrKlang.dll
int main(int argc, const char** argv){
printf("\nHello World!\n");
return 0;
}
dotnet-4-64
,macosx-gcc
,linux-gcc-64
,winx64-visualStudio
examples
目录改编了一个):
CPP = g++
OPTS = -dynamiclib -I"include" -L"bin/macosx-gcc" -lirrklang -pthread
all:
$(CPP) main.cpp -o example $(OPTS)
clean:
rm example
-dynamiclib
选项,因为否则链接程序将在
/usr/lib
中搜索该库。
Make
时,似乎一切正常,没有错误,但是如果我尝试执行
./example
,则会出现以下错误:
-bash: ./example: cannot execute binary file
file ./example
检查与我的操作系统的兼容性:结果是
./example: Mach-O 64-bit dynamically linked shared library x86_64
最佳答案
除了此处的其他答案外,您还需要做其他一件事。 macOS上的动态库包含一个“加载路径”,当启动与其相关的可执行文件时,该路径会告诉操作系统在哪里可以找到要加载的库。此加载路径是从dylib中读取的,并在链接时烘焙到可执行文件中,这就是为什么在注释中报告问题的原因。
Apple提供了一个名为install_name_tool
的实用程序,用于在链接后修补可执行文件中的加载路径,因此从您发布的内容中,您可能想要以下内容:
install_name_tool -change libirrklang /bin/macosx-gcc/libirrklang example
关于c++ - 二进制文件不可执行-C++和irrklang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60938209/
这个问题在这里已经有了答案: How to declare a global variable in C++ (5 个答案) 关闭 7 年前。 编辑 2:解决了!使用下面的代码,它成功了! irrk
最近,我下载了 Irrklang 声音库以用于我的 C++ 程序。为了测试它,我在 Code::Block 的编译器设置和我的项目build设置中安装并链接了库。但是,每当我尝试构建并运行以下代码时:
我是一名优秀的程序员,十分优秀!