【问题标题】:gcc/g++ using linkerflag "-lSDL2"gcc/g++ 使用链接器标志“-lSDL2”
【发布时间】:2020-09-07 02:58:23
【问题描述】:

根据lazyfoos sdl教程 https://lazyfoo.net/tutorials/SDL/01_hello_SDL/linux/cli/index.php 我设置了sdl2。 (它使用给定的终端命令运行) "g++ 01_hello_SDL.cpp -w -lSDL2 -o 01_hello_SDL"

我不记得-lsdl2 标志,我不知道为什么我必须使用它。 我也无法理解为什么 gcc 已经知道像 -lsdl2 这样的 SDL realatet 选项。

人们怎么知道他们必须使用这个标志?我找不到任何有用的东西,人们似乎只是把它当作事实,教程没有说明为什么要这样做。

希望有人有时间,如果我能获得知识,下次自己建立其他库,我会很高兴

【问题讨论】:

  • -lSDL2 表示 “链接名为 libSDL2.a 的静态库”。所以不,GCC 不知道 SDL 是什么。
  • @HolyBlackCat 是迂腐的,它并不一定意味着静态(大多数系统的默认值是动态的,如果没有找到动态库则回退到静态)。

标签: c++ c gcc g++ sdl-2


【解决方案1】:

专业人员不需要记住编译器和链接器标志。他们使用跨平台的 pkgconfig

pkg-config --cflags --libs sdl2

例如可以在shell中使用

g++ 01_hello_SDL.cpp -w -o 01_hello_SDL `pkg-config --cflags --libs sdl2`

【讨论】:

  • 感谢您的回复,只是为了弄清楚基础知识我如何知道要在我的配置文件中添加的链接器标志?我找不到任何有关此的官方信息
猜你喜欢
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多