如何用 C 编译 SoLoud 库的演示示例?

Posted

技术标签:

【中文标题】如何用 C 编译 SoLoud 库的演示示例?【英文标题】:How to compile the demo example of SoLoud library in C? 【发布时间】:2020-10-19 21:28:50 【问题描述】:

我计划在我的 C 项目中使用 SoLoud 库 (https://sol.gfxile.net/soloud/index.html)。我无法理解如何编译包含在中的 C 演示文件

/demos/c_test/ 

使其可执行。 有人可以帮我理解如何使用 gcc 编译它吗?

【问题讨论】:

嘿@4nTO!请提供一些附加信息:您已经尝试了什么,您遇到了什么类型的错误?你用什么平台? 【参考方案1】:

在 demos/c_test/main.c 中,

我变了:

#include "soloud_c.h"  

#include "../../include/soloud_c.h"

并编译。但是,编译器会输出以下警告:

gcc -ggdb3 -Wall -Wextra -Wconversion -pedantic -std=gnu11 -c "main.c" -o "main.o"  main.c: 

In function ‘generate_sample’:

main.c:72:38: warning: conversion from ‘int’ to ‘float’ may change value [-Wconversion]
   72 |   buf[i] += (((rand() % 1024) - 512) / 512.0f) *
      |                                      ^

main.c:75:36: warning: conversion from ‘int’ to ‘float’ may change value [-Wconversion]
   75 |   float fade = (44100 * 10 - base) / (44100 * 10.0f);
      |                                    ^

main.c: In function ‘main’:

main.c:129:14: warning: unused parameter ‘parc’ [-Wunused-parameter]
  129 | int main(int parc, char ** pars)
      |          ~~~~^~~~

main.c:129:28: warning: unused parameter ‘pars’ [-Wunused-parameter]
  129 | int main(int parc, char ** pars)
      |                    ~~~~~~~~^~~~

Compilation finished successfully.

注意:我没有费心链接可执行文件,但是,我确实注意到了一些感兴趣的项目。

    可用的库是 *.dll 文件,因此需要在 Windows 操作系统下编译/链接。 “bin”目录下是库:soloud_x64.dll、soloud_x86.dll 和 SDL2.dll。我不知道您的特定计算机需要包含哪些库

【讨论】:

感谢您的回复。我已经成功编译了该程序,但我无法制作可执行文件。我忘了指定我需要在 Ubuntu 上执行此操作,是否有可能,或者这个库只能在 Windows 上使用? (我认为)ubuntu linux 无法识别 *.dll 库

以上是关于如何用 C 编译 SoLoud 库的演示示例?的主要内容,如果未能解决你的问题,请参考以下文章

前端每日实战:119# 视频演示如何用纯 CSS 创作一个接扎啤的动画(内含2个视频)

如何用几何画板动态演示电饭锅工作原理

在 gouraud shading 中,啥是 T-junction 问题以及如何用 OpenGL 演示它

前端每日实战:102# 视频演示如何用纯 CSS 创作一个小和尚

前端每日实战:146# 视频演示如何用纯 CSS 创作一个脉动 loader

前端每日实战:152# 视频演示如何用纯 CSS 创作一个圆点错觉效果