我正试图在usb棒上获得一些环境来开发C ++代码。我计划使用其他计算机,大部分时间是linux,使用g ++和make从命令行处理这个问题。 / p>
问题是我需要使用计算机没有的一些库,比如Lua和OpenGL。我无法将它们添加到正常目录中,我在这些计算机上没有root。我发现的大多数解决方案都涉及到将东西放在/ usr / lib /等中,但我不能这样做。我还尝试添加诸如'-L / media // lib'之类的选项,这是保存它们的地方,但它不起作用。在编译时,我得到了第一次切换到未安装库的操作系统时出现的相同错误。
在/ usr /我以外的计算机上是否可以放置它们,或者让gcc“看到”它们的方法?
答案 0 :(得分:2)
您需要的不仅仅是能够使用这些库编译代码的库。 (我在这里假设Linux,在OSX,BSD,Cygwin,Mingw等方面可能略有不同......)
对于开发,当代码使用库时,您需要这三件事:
你似乎错过了头文件(?)将它们添加到你的usb棒,比如/ media / include
-I/media/include
来引用头文件的非标准位置。-L/media/lib
来引用库的非标准位置。您可能错过了第一步。
对于动态链接库,系统将仅从默认位置加载这些库,通常是/ lib /,/ usr / lib /
了解ldd
工具以帮助调试此步骤。
在运行程序时,您需要告诉系统在哪里加载其他库,这里有3个替代方案:
ldconfig -a
。export LD_LIBRARY_PATH=/media/lib
-Wl,-rpath,/media/lib
可能还有其他原因导致事情无法解决,如果有的话, 向我们展示ls -l / media / libs的输出,以及放置库头文件的位置,用于编译/链接的命令行,以及你得到的确切错误。