如何使用minilibx进行编译?

亚历山大·德·特默曼

我正在学校做练习(Mac OSX),并且想继续在家(Ubuntu 16.04)。要执行此项目,我需要使用一个库:Minilibx(https://github.com/ttshivhula/minilibx)尝试gcc时遇到了问题。以下是gcc告诉我的内容:“ mlx_init.c :(。text + 0x2c):参考文献«XShmQueryVersion»”(英语中未定义的引用)。每个库(甚至math.h)都有很多这样的错误。在学校,编译时没有问题,但在家里却行不通。

我用这一行编译:

gcc -Wall -Werror -Wextra -std=gnu99 -I. -g -lm -lGLEW -lglfw -lGL ${OBJS} minilibx/libmlx_Linux.a -o ${NAME}

与:

OBJS = ${SRC:%.c=%.o}

SRC = cub3d.c ${addprefix ${GNL_PATH}, $(GNL_FILE)} ${addprefix ${LIB_PATH}, $(LIB_FILE)}

GNL和LIB是我的两个个人特权。

我试图改变我的编译方式,但是我找不到问题所在。

乔纳森·莱夫勒

经验法则:在链接命令行上,库位于对象文件之后,而不是对象文件之前。

如果将库放在目标文件之前,则某些系统将不会记录由库定义的符号,因为在命令行从左到右处理时,对库中的任何函数都没有未定义的未定义引用,因此当扫描目标文件,不重新扫描库。

更改此:

gcc -Wall -Werror -Wextra -std=gnu99 -I. -g -lm -lGLEW -lglfw -lGL ${OBJS} \
    minilibx/libmlx_Linux.a -o ${NAME}

至:

gcc -Wall -Werror -Wextra -std=gnu99 -I. -g ${OBJS} -lm -lGLEW -lglfw -lGL \
    minilibx/libmlx_Linux.a -o ${NAME}

现在您有机会链接功能。在Mac上,使用-lm是不必要但无害的;数学函数位于主系统库中。其他系统,尤其是Linux,仍然有一个单独的数学库-主要是为了歇斯底里的葡萄干(……呃,历史原因……)。

我发现您也需要将minilibx/libmlx_Linux.a参数也放在命令行的前面(紧接在后面),我并不感到惊讶${OBJS}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用libmosquitto进行编译

来自分类Dev

如何使用clang ++进行编译?

来自分类Dev

如何使用clang ++进行编译?

来自分类Dev

如何使用GCC进行编译和运行?

来自分类Dev

如何使用Camlp4进行编译?

来自分类Dev

如何使用交叉编译器进行编译?

来自分类Dev

在fortran中使用fgsl:如何使用gfortran进行编译

来自分类Dev

使用CodeDom进行编译

来自分类Dev

使用CodeDom进行编译

来自分类Dev

如何确定Swift是否使用优化进行了编译

来自分类Dev

如何使用C#6.0为.NET 2.0进行编译?

来自分类Dev

Java:如何使用Optional.empty()进行编译?

来自分类Dev

如何使Nsight EE使用-dc标志进行编译?

来自分类Dev

引导加载程序-如何使用C进行向前编译

来自分类Dev

如何包含生成的文件以使用cmake进行编译?

来自分类Dev

如何使用Mercury编程语言进行调试编译?

来自分类Dev

如何在OpenWRT中使用gcc进行编译

来自分类Dev

如何在macOS的Qt中使用OpenMP进行编译?

来自分类Dev

如何在IDE中使用DCC32进行编译

来自分类Dev

如何根据所使用的实类型进行条件编译分支?

来自分类Dev

引导加载程序-如何使用C进行向前编译

来自分类Dev

在编译/链接时如何使用地址进行计算?

来自分类Dev

如何在OpenWRT中使用gcc进行编译

来自分类Dev

如何在 VSCode 上使用 GCC 进行编译和调试

来自分类Dev

如何使用条件编译在 Rust 中对导入进行分组?

来自分类Dev

使用Android Gradle插件进行编译时如何添加Java编译器选项?

来自分类Dev

如何在使用CMake进行编译时修复“ CXX编译器的未知功能”(Linux Mint)

来自分类Dev

反应无法编译。找不到模块:无法解析,如何使用 react-router 进行编译?

来自分类Dev

如何获得程序进行编译?

Related 相关文章

  1. 1

    如何使用libmosquitto进行编译

  2. 2

    如何使用clang ++进行编译?

  3. 3

    如何使用clang ++进行编译?

  4. 4

    如何使用GCC进行编译和运行?

  5. 5

    如何使用Camlp4进行编译?

  6. 6

    如何使用交叉编译器进行编译?

  7. 7

    在fortran中使用fgsl:如何使用gfortran进行编译

  8. 8

    使用CodeDom进行编译

  9. 9

    使用CodeDom进行编译

  10. 10

    如何确定Swift是否使用优化进行了编译

  11. 11

    如何使用C#6.0为.NET 2.0进行编译?

  12. 12

    Java:如何使用Optional.empty()进行编译?

  13. 13

    如何使Nsight EE使用-dc标志进行编译?

  14. 14

    引导加载程序-如何使用C进行向前编译

  15. 15

    如何包含生成的文件以使用cmake进行编译?

  16. 16

    如何使用Mercury编程语言进行调试编译?

  17. 17

    如何在OpenWRT中使用gcc进行编译

  18. 18

    如何在macOS的Qt中使用OpenMP进行编译?

  19. 19

    如何在IDE中使用DCC32进行编译

  20. 20

    如何根据所使用的实类型进行条件编译分支?

  21. 21

    引导加载程序-如何使用C进行向前编译

  22. 22

    在编译/链接时如何使用地址进行计算?

  23. 23

    如何在OpenWRT中使用gcc进行编译

  24. 24

    如何在 VSCode 上使用 GCC 进行编译和调试

  25. 25

    如何使用条件编译在 Rust 中对导入进行分组?

  26. 26

    使用Android Gradle插件进行编译时如何添加Java编译器选项?

  27. 27

    如何在使用CMake进行编译时修复“ CXX编译器的未知功能”(Linux Mint)

  28. 28

    反应无法编译。找不到模块:无法解析,如何使用 react-router 进行编译?

  29. 29

    如何获得程序进行编译?

热门标签

归档