zoukankan      html  css  js  c++  java
  • VS2017 Linux C++引用自定义的动态库

    前一篇博客讲了用系统库libpthread.so的例子,只需要在项目属性页的[C++->命令行参数]和[链接器->命令行参数]中加上对应参数(比如-pthread)即可,然后我试着引用自己的库(libTLPI.so,放在/lib目录下),然后在命令行参数后面加上-lTLPI,发现无法引用自定义的动态库,undefined reference错误。

    在网上找了很久,都没找到解决方案,最后还是官方周到,在VS首页的教程中就有

    因为之前配置过opengl,所以立刻看出来GL、GLU、glut代表的是opengl的三个.so文件(libGL.so、libGLU.so、libglut.so),然后我就发现被VS的描述坑了

    我还以为这里的库依赖项只能输入静态库呢,原来是我一时眼快……前缀为lib的就是动态库libxxx.so,我第一眼还以为是windows的静态库xxx.lib,因为以前配置opencv的时候套路都是在[链接器->输入]中输入静态库(*.lib文件)的名字,然后动态库(*.dll)直接通过环境变量来查找。

    而远程调试Linux的话,动态库libxxx.so和静态库xxx.a都是在[链接器->输入]里配置(囧)

    于是,在[C++->命令行参数]、[链接器->命令行参数]中也不必要去加-lTLPI选项了。

    最后精简了代码,编译运行成功,到了这一步终于可以用VS完全取代Linux下直接开发了(也不尽然,远程操控相比本地直接用命令编译速度还是慢点的)

  • 相关阅读:
    快速收录方法
    .NET学习网址大全,不得不上,国内外经典网站
    首篇文章测试。
    DropDownList的用法
    SqlServer初级学习笔记
    GDI编程开发
    C#继承细谈
    web开发的一些小零碎知识点(一)
    Js实现全选和批量删除
    IEnumberable和IEnumberator理解
  • 原文地址:https://www.cnblogs.com/Harley-Quinn/p/7465638.html
Copyright © 2011-2022 走看看