英文:
Go-sfml `` is deprecated
问题
我在我的环境中设置了sfml
和csfml
,然后尝试安装go-sfml
,但是返回了大量的弃用警告。我认为我安装了正确的sfml
版本,所以不知道出了什么问题或者如何修复。
我使用winbuilds
来设置gcc
。
我做了以下操作:
go get -u gopkg.in/teh-cmc/go-sfml.v24/...
返回多个警告,例如:
Graphics_wrap.c:6614:3: warning: 'sfShader_setCurrentTextureParameter' is deprecated (declared at c:\users\****\documents\winbuilds\x86_64-w64-mingw32\include\sfml\graphics\shader.h:646) [-Wdeprecated-declarations]
sfShader_setCurrentTextureParameter(arg1,(char const *)arg2);
它还无法安装/构建(至少我认为它是在说这个):
C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
c:/users/****/documents/winbuilds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: unrecognized option '--high-entropy-va'
c:/users/****/documents/winbuilds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: use the --help option for usage information
collect2.exe: error: ld returned 1 exit status```
<details>
<summary>英文:</summary>
I set up `sfml` and `csfml` in my environment and then tried installing `go-sfml`, which started returning tons of deprecation warnings. I think I have the right `sfml` versions, so I don't know what is wrong or how to fix it.
I used `winbuilds` to set up `gcc`.
What I did:
```go get -u gopkg.in/teh-cmc/go-sfml.v24/...```
Returns multiple warnings like:
```Graphics_wrap.c: In function '_wrap_sfShader_setCurrentTextureParameter_graphics_23698568018502eb':
Graphics_wrap.c:6614:3: warning: 'sfShader_setCurrentTextureParameter' is deprecated (declared at c:\users\****\documents\winbuilds\x86_64-w64-mingw32\include\sfml\graphics\shader.h:646) [-Wdeprecated-declarations]
sfShader_setCurrentTextureParameter(arg1,(char const *)arg2);
It also fails to install/build (at least I think that is what it is saying):
C:\Program Files\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
c:/users/****/documents/winbuilds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: unrecognized option '--high-entropy-va'
c:/users/****/documents/winbuilds/bin/../lib64/gcc/x86_64-w64-mingw32/4.8.3/../../../../x86_64-w64-mingw32/bin/ld.exe: use the --help option for usage information
collect2.exe: error: ld returned 1 exit status```
</details>
# 答案1
**得分**: 1
> 所以我以为那就是问题所在,然后改变了版本。
但是这在 [commit 16ea259][1] 中已经被弃用了,时间是2016年8月,CSFML 2.4
由于 [`teh-cmc/go-sfml`][2]:
- 需要 CSFML 2.4,
- 在 `graphics/Graphics_wrap.c` 中使用了 [`sfShader_setCurrentTextureParameter`][3]
除非你修补 `go-sfml` 本身,否则你将始终收到该警告。
[1]: https://github.com/SFML/CSFML/commit/16ea259e04a1a946f0a7655ce5c2acc3d04c430f#diff-eda6e32a6d1dd56b4ce07bd5274278f421b2d045ab21c931c4992fa171a96589R619-R645
[2]: https://github.com/teh-cmc/go-sfml
[3]: https://github.com/teh-cmc/go-sfml/blob/25d755527155cc9e90830e6dc3e8fc78c90e4868/graphics/Graphics_wrap.c#L6603-L6614
<details>
<summary>英文:</summary>
> so I thought that was what was wrong and changed the version.
But this was deprecated in [commit 16ea259][1], Aug. 2016, CSFML 2.4
Since [`teh-cmc/go-sfml`][2]:
- does require CSFML 2.4,
- does use [`sfShader_setCurrentTextureParameter` in `graphics/Graphics_wrap.c`][3]
You always will have that warning, unless you patch `go-sfml` itself.
[1]: https://github.com/SFML/CSFML/commit/16ea259e04a1a946f0a7655ce5c2acc3d04c430f#diff-eda6e32a6d1dd56b4ce07bd5274278f421b2d045ab21c931c4992fa171a96589R619-R645
[2]: https://github.com/teh-cmc/go-sfml
[3]: https://github.com/teh-cmc/go-sfml/blob/25d755527155cc9e90830e6dc3e8fc78c90e4868/graphics/Graphics_wrap.c#L6603-L6614
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论