Linux共享库c

Linux共享库c,第1张

概述我有一个明智的共享图书馆.我如何在我的程序中使用它?我是否需要包含该库的标题? 我在Linux下使用Eclipce.我使用-L和-l设置了库的路径.但我的功能在程序中不可见. 你能解释一下共享图书馆是如何运作的吗? 问候. 编辑: 我收到以下错误: int main() { char* path = "/export/home/pdmazubi3/workspace/proj1/src/p 我有一个明智的共享图书馆.我如何在我的程序中使用它?我是否需要包含该库的标题?

我在Linux下使用Eclipce.我使用-L和-l设置了库的路径.但我的功能在程序中不可见.

你能解释一下共享图书馆是如何运作的吗?

问候.

编辑:

我收到以下错误:

int main() {    char* path = "/export/home/pdmazubi3/workspace/proj1/src/pic.jpg";    CEDD_Descriptor::CEDD ced; // undefined reference to `CEDD_Descriptor::CEDD::CEDD[in-charge]()'    ced.execute(path);}

标题:

class CEDD    {        public:            CEDD(double Th0,double Th1,double Th2,double Th3,bool CompactDescriptor);            CEDD();            ~CEDD(voID);            double T0;            double T1;            double T2;            double T3;            bool Compact;            double* execute(char* path);        private:            int cedd_segnum;                //number of segments            int* cedd_partitionSize;        //number of pixels in each segment    };
解决方法 您需要在应用程序中包含头文件并链接它.

看看如何在shared libraries和Linux howto中使用库.

如果头文件与您的应用程序不在同一目录中(通常不是),那么您需要告诉编译器在哪里查找它,使用-I / path / to / include来包含包含目录的路径包含头文件.

在链接步骤中,您需要指向库.一般用法是使用-L / path / to / lib是包含库的目录的路径,后跟-l< libname>其中< libname>是没有lib的库的名称,例如如果你有libboost_serialization-d-1_34_1.so你会使用-lboost_serialization-d-1_34_1

例子:

g++ -I/sw/include -Wall -g -I/usr/local/include/boost-1_36/ -c main.cpp -o main.og++ -L/sw/lib -lboost_serialization-d-1_34_1 -o x main.o
总结

以上是内存溢出为你收集整理的Linux共享库c全部内容,希望文章能够帮你解决Linux共享库c所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/yw/1030026.html

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

发表评论

登录后才能评论

评论列表(0条)

保存