共享库链接 - 未定义的符号错误引用

时间:2014-06-06 18:35:05

标签: compiler-errors g++ shared-libraries

我构建了名为libCalculator.so的动态库。该库包含math.h中的__sin函数。

我想在CalculatorApp.cpp中使用这个共享库。

CalculatorApp包括主要功能。

我使用命令进行编译

  

g ++ -I ./inc -fpic -c src / Calculator.cpp -o obj / Calculator.o

     

g ++ -shared -o lib / libCalculator.so obj / Calculator.o

     

g ++ -I ./inc -L ./lib -o bin / CalculatorApp_shared src / CalculatorApp.cpp -lCalculator -lm

结果 - > ./ lib / libCalculator.so:未定义对`__sin'的引用

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我后来才知道。解决方案如下 - >

> g++ -I ./inc -c -fPIC -o obj/Calculator.o src/Calculator.cpp
> g++ -o lib/libCalculator_dynamic.so obj/Calculator.o -dynamic -lm -shared -fPIC
> g++ -c -I./inc -o obj/CalculatorApp.o src/CalculatorApp.cpp
> g++ -o bin/calculatorapp_dynamic obj/CalculatorApp.o lib/libCalculator_dynamic.so

我还修复了另一个错误 - >

在CalculatorApp.cpp中,我改变了

#include "Calculator.h" ---> #include "../inc/Calculator.h"