zoukankan      html  css  js  c++  java
  • linux/eclipse/c++ 动态库的创立与调用


    创建动态链接库

    在Eclipse中创建新的C++工程,File->New->Project->C++->C++ Project,选择Shared Library。
    编译之后将在工程目录下生成一个libshared.so文件,这就是我们要用的动态链接库文件。

    导入动态库

    Project->Properties->C/C++ Build->Settings->Tool Settings->GCC C++ Linker->Libraries,添加Libraries (-l): shared,添加Library search path (-L): {刚才编译生成的*.so文件路径}。

    至此编译可以通过,运行程序还需要指定默认的动态库搜索路径。有两类方法,一类是修改系统的默认搜索路径,类似添加环境变量的方法。另一类是把动态链接库的路径信息编入二进制可执行文件。

    第一种:在/etc/ld.so.conf中添加动态库路径,然后运行ldconfig生效。或者export LD_LIBRARY_PATH=路径。这两个方法都只能在eclipse外部生效。后一种只能在同一终端里有用。在eclipse中,可以设置 Run_configurations->Environment添加环境变量LD_LIBRARY_PATH。

    第二种:Tool Setting -> GCC C++ Linker -> Miscellaneous -> Other options 添加 -R/路径。这种方法生成程序以后,动态链接库的路径就不能变动了。

    当然,还有最为简单实际的一种方法,直接把动态链接库放到系统的默认路径之下:/lib或/usr/lib。

    Linux Eclipse 中C/C++编译,加入链接库的方法

    右键点击project->properties->c/c++ builder->settings里面添加编译器和链接器的参数。
    比如你这个-lhello库就可以在linker的libraries添加,也可添加hello库的搜索路径-L

    比如:
    pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a。
    所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。
    问题解决如下:
    在编译中要加 -lpthread参数
    gcc -o pthread pthread.c -lpthread
      
    就可以在 GCC C Linker 中的 Libraries 中的 Libraries(-l)中添加pthread ,记住-l它默认已经添加上了。

    以上内容转自http://hi.baidu.com/kakakun1/blog/item/22b4b6386e9b193eb9998fe7.html

    实际上只通过属性设置导入linux版本的dll即可,最后导入的格式如下图。

    图中可以看到eclipse下dll的存在形式像引用的文件一样,VS下面在工程属性里指定路径与名称。这点是二者的区别。

  • 相关阅读:
    Git_创建版本库
    Git_安装Git
    Git_集中式vs分布式
    Git_git的诞生
    echartShow
    微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的
    vue2.0 $router和$route的区别
    vue移动端开发全家桶
    干货分享:vue2.0做移动端开发用到的相关插件和经验总结
    优秀的基于VUE移动端UI框架合集
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318901.html
Copyright © 2011-2022 走看看