• linux/eclipse/c++ 动态库的创立与调用


    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下面在工程属性里指定路径与名称。这点是二者的区别。

  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/flysnail/p/2550835.html
Copyright © 2020-2023  润新知