Linux共享库c
发布时间:2020-12-14 01:48:04 所属栏目:Linux 来源:网络整理
导读:我有一个明智的共享图书馆.我如何在我的程序中使用它?我是否需要包含该库的标题? 我在Linux下使用Eclipce.我使用-L和-l设置了库的路径.但我的功能在程序中不可见. 你能解释一下共享图书馆是如何运作的吗? 问候. 编辑: 我收到以下错误: int main() { cha
我有一个明智的共享图书馆.我如何在我的程序中使用它?我是否需要包含该库的标题?
我在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.o g++ -L/sw/lib -lboost_serialization-d-1_34_1 -o x main.o (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |