|
1Qter豆
1.有这样两个共享库分别为Lib1和Lib2,和一个控制台程序Test
2.Lib1里面有这样1个函数 void add(int param1,int param2,int &result);
Lib2里面有这样1个函数 void sum(int param1,int param2,int &result);
其中Lib2中的sum函数调用Lib1中的add函数;在控制台Test程序中调用Lib2
在Lib2中添加了库Lib1的引用,库指向Lib1生成的.so文件,包含目录指向Lib1的源代码目录(Lib1.h所在的文件夹)
在Test中添加了库Lib2的引用,库指向Lib2生成的.so文件,包含目录指向Lib2的源代码目录(Lib2.h所在的文件夹)
按照顺序构建
Lib1 通过
Lib2 通过
Test 不通过
undefined reference to 'add(int ,int ,int&)'
collect2:error:ld returned 1 exit status
Lib1.h
#ifndef LIB1_H
#define LIB1_H
void add(int param1,int param2,int &result);
#endif // LIB1_H
Lib1.cpp
#include"Lib1.h"
void add(int param1,int param2,int &result)
{
result=param1+param2;
}
Lib2.h
#ifndef LIB2_H
#define LIB2_H
void sum(int param1,int param2,int &result);
#endif // LIB2_H
Lib2.cpp
#include"Lib2.h"
#inlcude"Lib1.h"
void sum(int param1,int param2,int &result)
{
add(param1,param2,result);
}
在Test控制台程序中
main.cpp
#include <QCoreApplication>
#include <QDebug>
#include "Lib2.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int p1=1000;
int p2=10;
int p3=-1;
sum(p1,p2,p3);
qDebug()<<p3;
return a.exec();
}
编译一直不行
|
|