链接错误:命令行中缺lessDSO

链接错误:命令行中缺lessDSO,第1张

概述链接错误:命令行中缺lessDSO

我来自windows的linux新手(使用Ubuntu 14.04 LTS 64位),并试图移植到现有的CUDA项目。

当通过连接

/usr/local/cuda/bin/nvcc -arch=compute_30 -code=sm_30,compute_30 -o Main.o display.o fileUtil.o Timer.o NeuralNetwork.o -L/usr/lib -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/cuda/lib64 -lGLEW -lglfw3 -lGL -lglu -lcuda -lcudart

我遇到以下错误:

/usr/bin/ld: /usr/local/lib/libglfw3.a(x11_clipboard.co): undefined reference to symbol 'XConvertSelection' //usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make: *** [CUDANN] Error 1

答案似乎与这篇文章中的解决scheme密切相关( 奇怪的链接错误:DSO从命令行中丢失 ),但是由于我对linux的经验不足,我无法使它们适应我自己的问题。

如何构build和安装GLFW 3并将其用于linux项目

glVIEwport未定义参考

OpenGL 3.3 GLX_ARB_create_context_profile在linux上与bumblebee不可用

GLFW:创build窗口时出现'WGL:驱动程序不支持OpenGL'错误

Arch linux上的OpenGL 3.3

任何想法可能是什么问题?

以下是编译期间的完整输出: https : //gist.github.com/wbolden/857eddd11e4dcb915c02

这里是我在Makefile中的尝试: https : //gist.github.com/wbolden/135033daae04ed0d8cf3

在linux上使用D编程语言的GLFW

GLFW无法创build窗口:“GLX:无法创build上下文:GLXBadFBConfig”

奇怪的VGL注意事项 – 注意:2D X服务器的像素格式与Pbuffer的像素格式不匹配。 禁用PBO回读

glfwSwapBuffers()和windows上的垂直刷新

未定义的引用glfwSetErrorCallback

希望对于像我这样的linux新手来说,这将对他们有所帮助,并且没有发现任何与linux相关的东西特别明显。

正如talonmIEs所指出的那样,我无法间接链接,因此需要指定我正在使用的库所需的任何附加库。 也就是说,如果我链接库A,需要库B和C,我需要链接所有三个库,以使程序正确链接。

找到其他需要的库我使用了pkg-config命令,在这里我找到了一个指南。 运行pkg-config --print-requires --print-requires-private glfw3给出了以下输出,它是glfw3所需的软件包列表。

x11 xrandr xi xxf86vm gl

然后我可以通过运行pkg-config --libs ,然后找到库的名称,找到我需要的库。 例如, pkg-config --libs x11产生-lX11 。

注意:您可以将多个项目传递给pkg-config作为输入,以便运行

pkg-config --libs $(pkg-config --print-requires --print-requires-private glfw3)

将打印出你需要链接的所有附加库( -lX11 -lXrandr -lXi -lXxf86vm -lGL )。

我的程序现在链接成功,我希望这有助于任何人有类似的问题。

你的链接器需要X11库,你需要指定-lX11到链接器

尝试

/usr/local/cuda/bin/nvcc -arch=compute_30 -code=sm_30,compute_30 -o Main.o display.o fileUtil.o Timer.o NeuralNetwork.o -L/usr/lib -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/cuda/lib64 -lGLEW -lglfw3 -lGL -lglu -lcuda -lcudart -lX11

使用以下命令来解决问题:

FLAGS=-lX11 ./configure --prefix=/usr --disable-static make make install

总结

以上是内存溢出为你收集整理的链接错误:命令行中缺lessDSO全部内容,希望文章能够帮你解决链接错误:命令行中缺lessDSO所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1288566.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存