Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带库的USB GCC开发环境 我试图在USB插件上找到一个环境来开发C++代码。我计划使用其他计算机,大部分时间是linux,使用g++和make从命令行处理这个问题_Gcc_Linker_G++_Usb - Fatal编程技术网

带库的USB GCC开发环境 我试图在USB插件上找到一个环境来开发C++代码。我计划使用其他计算机,大部分时间是linux,使用g++和make从命令行处理这个问题

带库的USB GCC开发环境 我试图在USB插件上找到一个环境来开发C++代码。我计划使用其他计算机,大部分时间是linux,使用g++和make从命令行处理这个问题,gcc,linker,g++,usb,Gcc,Linker,G++,Usb,问题是我需要使用一些库,比如Lua和OpenGL,而计算机没有这些库。我无法将它们添加到普通目录,我在这些计算机上没有根目录。我发现的大多数解决方案都涉及到将东西放入/usr/lib/之类的文件中,但我无法做到这一点。我还尝试添加诸如'-L/media//lib'之类的选项,这些选项就是保存它们的地方,但没有成功。编译时,我会遇到与第一次切换到未安装库的操作系统时相同的错误 在/usr/I之外的计算机上是否有其他地方可以放置它们,或者有什么方法可以让gcc“看到”它们?要利用这些库编译代码,您需

问题是我需要使用一些库,比如Lua和OpenGL,而计算机没有这些库。我无法将它们添加到普通目录,我在这些计算机上没有根目录。我发现的大多数解决方案都涉及到将东西放入/usr/lib/之类的文件中,但我无法做到这一点。我还尝试添加诸如'-L/media//lib'之类的选项,这些选项就是保存它们的地方,但没有成功。编译时,我会遇到与第一次切换到未安装库的操作系统时相同的错误


在/usr/I之外的计算机上是否有其他地方可以放置它们,或者有什么方法可以让gcc“看到”它们?

要利用这些库编译代码,您需要的不仅仅是库。(我在这里假设Linux,在OSX、BSD、Cygwin、Mingw等平台上可能会略有不同。)

图书馆 对于开发,当您的代码使用库时,您需要以下三件事:

  • 库头文件.h文件
  • 库开发文件libXXX.so或libXXX.a通常
  • 库运行时文件libXXX.so.Y,其中Y是版本号。如果在库中静态链接,则不需要这些
您似乎缺少头文件(?)请将它们添加到U盘中,例如在/media/include下

发展
  • 编译源代码时使用(例如)编译器标志
    -I/media/include
    ,以引用头文件的非标准位置
  • 使用编译器/链接器标志
    -L/media/lib
    引用库的非标准位置
你可能错过了第一步

跑步 对于动态链接库,系统将仅从默认位置(通常为/lib/,/usr/lib)加载这些库/

学习
ldd
工具以帮助调试此步骤

运行程序时,您需要告诉系统在何处加载其他库,以下是3个备选方案:

  • 系统范围:编辑/etc/ld.so.conf并在其中添加/media/libs。然后运行
    ldconfig-a
  • 本地,仅适用于当前外壳。设置LD_LIBRARY_PATH环境变量以引用/media/lib,运行
    export LD_LIBRARY_PATH=/media/lib
  • 可执行文件:硬编码可执行文件中的非标准库路径。在创建可执行文件时,将此添加到链接步骤:
    -Wl,-rpath,/media/lib
等 可能还有其他原因,如果是这样的话, 向我们展示ls-l/media/libs的输出、库头文件的存放位置、用于编译/链接的命令行,以及得到的确切错误

  • 缺少标题和/或开发库(对于动态库,通常有一个从libXXX.so到libXXX.so.Y的符号链接,链接器需要libXXX.so,它不会直接查看libXXX.so.Y)
  • 使用与当前操作系统/体系结构不兼容的库。(在一个linux发行版上编译的库通常与另一个发行版不兼容,甚至与同一发行版的另一个次要版本也不兼容)
  • 使用带有FAT32文件系统的usb记忆棒,您将在符号链接方面遇到麻烦

要利用这些库编译代码,需要的不仅仅是库。(我在这里假设Linux,在OSX、BSD、Cygwin、Mingw等平台上可能会略有不同。)

图书馆 对于开发,当您的代码使用库时,您需要以下三件事:

  • 库头文件.h文件
  • 库开发文件libXXX.so或libXXX.a通常
  • 库运行时文件libXXX.so.Y,其中Y是版本号。如果在库中静态链接,则不需要这些
您似乎缺少头文件(?)请将它们添加到U盘中,例如在/media/include下

发展
  • 编译源代码时使用(例如)编译器标志
    -I/media/include
    ,以引用头文件的非标准位置
  • 使用编译器/链接器标志
    -L/media/lib
    引用库的非标准位置
你可能错过了第一步

跑步 对于动态链接库,系统将仅从默认位置(通常为/lib/,/usr/lib)加载这些库/

学习
ldd
工具以帮助调试此步骤

运行程序时,您需要告诉系统在何处加载其他库,以下是3个备选方案:

  • 系统范围:编辑/etc/ld.so.conf并在其中添加/media/libs。然后运行
    ldconfig-a
  • 本地,仅适用于当前外壳。设置LD_LIBRARY_PATH环境变量以引用/media/lib,运行
    export LD_LIBRARY_PATH=/media/lib
  • 可执行文件:硬编码可执行文件中的非标准库路径。在创建可执行文件时,将此添加到链接步骤:
    -Wl,-rpath,/media/lib
等 可能还有其他原因,如果是这样的话, 向我们展示ls-l/media/libs的输出、库头文件的存放位置、用于编译/链接的命令行,以及得到的确切错误

  • 缺少标题和/或开发库(对于动态库,通常有一个从libXXX.so到libXXX.so.Y的符号链接,链接器需要libXXX.so,它不会直接查看libXXX.so.Y)
  • 使用与当前操作系统/体系结构不兼容的库。(在一个linux发行版上编译的库通常与另一个发行版不兼容,甚至与同一发行版的另一个次要版本也不兼容)
  • 使用带有FAT32文件系统的usb记忆棒,您将在符号链接方面遇到麻烦

为什么-L/media/lib不起作用?当我这样做时,它给出了相同的错误,这不是enc