搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家自动化
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
基于Spring Boot的零食交易平台设计与实现(附源码+数据库+万字文档+PPT)
2
大数据毕业设计:智慧交通大数据监控系统 Flask框架(源码)✅_智慧交通系统 demo
3
简易的编译器——语义分析_编译器语义分析
4
神经网络小记-优化器_pytorch神经网络优化器
5
强化学习——股票预测项目复现_dummyvecenv
6
Hugging Face让我们人手一个AutoGPT,Hugging Face模型大集合,端到端开发框架transformers-agent,对标LangChain_huggingface 代理
7
电商技术揭秘一:电商架构设计与核心技术
8
Vue官网下载Vue.js和Vue.min.js_vue.js官网
9
Modern Methods for Sentiment Analysis_sentiment analysis with svm
10
【信息抽取】NLP中关系抽取的概念,发展及其展望
当前位置:
article
> 正文
使用 SDL 过程中遇到的两个问题: 找不到main函数 和 链接错误_sdl2_sdlmain_library-notfound
作者:我家自动化 | 2024-03-24 16:24:15
赞
踩
sdl2_sdlmain_library-notfound
最近刷知乎,看到有人在写光栅渲染器,膜拜不已。自己也打算学习学习,看看能不能做出来这么一个。趁着最近两天工作不忙,上班时间看了一下。
"写光栅渲染器" 这件事通俗的说,就是自己实现一个类似 OpenGL 或者 Direct3D 的渲染管线。即 自己 写代码 ,渲染 三维空间里的 点、线、三角形 等图元 到 一个 二维图像里, 这个过程不借助 OpenGL 和 Direct3D 的 API ,而是纯自己实现。这东西的难点当然在前半部分 ,即如何 把 三维空间的图像映射到 二维空间上。但是第一步,至少要做到 ,能够有这样一个 二维空间,自己能够随意的操作里面 像素的值,并显示到屏幕上。
为了达到这第一步, 有许多的方案可以选择。 1. 利用 html5 的 canvas 标签,用 javascript 代码 ,能够比较方便的操作 每个像素的值;2. 使用 windows api ,控制 控制台的颜色,以这个 控制台 当作 渲染的 最终目标; 3.用 windows api 自己构建一个 DIB 图像 ,能够随意操作里面的 像素值,最后 blit 到 windows 窗口上; 4. 就是现在要说的 SDL. SDL 构建 一个 Surface ,然后 Blit 到窗口上(和上一个有点像).
在这几种办法里, h5+js 用起来 感觉不那么 舒服 ; 绘制在控制台上又有点另类而且 用途不大;如果 依赖 win32 api 就没办法在公司和 家里 之间 协同学习(公司只有 mac电脑).所以最终选择了 SDL 的办法 。
最开始使用的是 SDL2 的版本,用 xcode 熟悉了一下 ,感觉 api 设计的非常 清晰明了。在了解了 如何 修改 Surface 上每个像素的颜色值后,我认为我了解的已经够了 ,可以向光栅渲染器的方向前进了。但是回到家里 ,使用windows 电脑打算下载一个 SDL 的 windows 版本时,竟然发现 SDL 的官方网站打不开了。。。无奈之下,只好找到 电脑里面 另一个 使用到了 SDL-1.2.15 的工程里面的 SDL-1.2.15 版本来用。
结果 SDL 1 的 版本 整合 到自己的工程里,就遇到了 几个坑 。
首先是 总是提示你找不到 入口函数 . 新建个 console 工程,写好 int main(int argc,char* argv[]) 之后,死活 告诉你没有入口 。最后原因是因为 SDL 的头文件里 #define main SDL_main ,做了这样的 宏定义后,main函数当然就找不到了。 解决的办法是 在 工程/属性/链接器/高级 里面,把 入口点 修改为 SDL_main 这样才能 正常跑 起来。这下算长了见识,我确实是头一次知道 编译的时候是可以 自定义 入口函数的。
其次是 明明有 SDL.lib SDLmain.lib ,链接时也能找到,但是就是 告诉你 里面的函数 比如 SDL_Init() 链接错误。 最后发现是 SDL 库编译好的版本里,有 32位的 lib dll 和 64位的 lib 和 dll, 如果报这样的问题, 直接换成另一套 就能找到了。
上面遇到的两个问题,都是 在使用 SDL 1 这个库的时候遇到的 。使用 SDL2 库的时候,实在 mac 电脑上, 直接 在 Build Phases 里 加上 SDL2.framework ,然后就没有遇到任何问题直接就能用,也遇到 没有 找不到 入口函数的问题 。
好记性不如烂笔头,在此记录一下 经验和教训。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/我家自动化/article/detail/303556
推荐阅读
article
ubuntu
18.04使用相关_
ubuntu
readline
library
not
found
...
meson.build:22:0: ERROR: C shared or static
library
‘readlin...
赞
踩
article
[
Python
sdl2
] 几个实现
的
对比
_
pygame
_
sdl2
...
pygame
Py
sdl2
pygame
_
sdl2
的
对比
_
pygame
_
sdl2
pygame
_
sdl2
...
赞
踩
article
IDEA使用
Mybatis
-
generator
自动生成代码_
configfile
d:\ideapr...
目录官方文档一、Springboot 结合
Mybatis
-
generator
1,修改Pom文件添加Maven引用,添加...
赞
踩
article
no
ma
in
manifest
attribute
,
in
xxx.jar...
找不到主类,如果是maven 项目,在pom.xml 指定主类。no
ma
in
manifest
attribute
, ...
赞
踩
article
MACOS 安装
python
3.8
_/
library
/
framework
s/
python
.frame...
这段时间,因为公司要求,要开始使用
python
,但Mac本身自带的2.7已经很老了,会出现依赖库的不兼容问题,那么怎么安...
赞
踩
article
If you believe
t
h
is
libr
a
ry
doesn‘
t
need
t
o be je
t
...
Could
no
t
de
t
ermine
t
he dependencies of
t
a
sk ':
a
u
t
om
a
t
Core:l...
赞
踩
article
4 supp
o
rted bindings -
PySide2
,
PyQt5
, PySide and ...
https://github.c
o
m/m
o
tt
o
ss
o
/Qt.pyQT链接_
o
c
o
mpliant gui librar...
赞
踩
article
spr
in
gboot配置
log4j2
报错:
java
.
lang
.IllegalStateExcepti...
引入
log4j2
后启动报错。Exception
in
thread
"ma
in
"
java
.
lang
.IllegalSt...
赞
踩
article
android
studio
Gradle
如果不能找依赖的包(
Gradle
can't
find
d...
升级
android
studio
1.0.0正式版以后,突然发现
Gradle
不能够添加其他的依赖包,折腾来许久终于找到了解...
赞
踩
article
Linux下运行
java
报错Err
or
: Could not
find
or
load
main c...
遇到过两种情况情况1 去掉包名 或者在启动时加上包名 情况2 运行
java
c HelloW
or
d.
java
时注意与类名一...
赞
踩
article
鸿蒙应用开发初尝试《创建项目》,之前那篇hello worl
d
作废_
file
'
d
:/myharmo...
华为鸿蒙应用开发创建项目,通过创建项目大致了解了项目结构、文件内容,了解了华为用到技术,与自己懂的相应证,就知道要进一步...
赞
踩
article
解决vue报错(Property or
method
“main“ is not
defined
o...
在写案列的时候,不知道怎么回事就忽然报了一个错,虽然不影响整体的效果,但是有个报错,总让人感觉不舒服。在这里就说说报错的...
赞
踩
article
健康体检中心_$(
function
() {
var
w
d =
200
; $(
"
.el-
main
"
)...
传智健康项目介绍 健康管理机构的业务系统 传统的互联网项目(后端系统,前端微信网页)开发人员应该需要的资料 ...
赞
踩
article
CentOs6.5 安装
Zlib
_
centos
but no
working
zlib
librar...
今天在搭建Tomcat+nginx 负载均衡环境时,提示我没有安装
Zlib
提示的错误信息如下:./configure: ...
赞
踩
article
Android
Studio1.4.2后使用
viewBindin
替代
kotlin
-
android
-e...
最近在通过阅读《第一行代码》第三版的方式去学习
Android
开发,但是因为成书时间与
Android
发展,书上有些内容已经...
赞
踩
相关标签
ubuntu
pygame
游戏
python
mybatis
jar
java
机器学习
gradle
android studio
android
enableJetifier
常见问题
logback
log4j2
Android
harmonyos
华为
vue