0
votes

I built dynamic library as name libCalculator.so .This library include __sin function from math.h .

I want to use this shared library in CalculatorApp.cpp .

CalculatorApp including main function.

I used commands for compilations

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

Result -> ./lib/libCalculator.so: undefined reference to `__sin'

What should I do ?

1

1 Answers

0
votes

I understood later . Solution is following ->

> 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

There is also another error I fix ->

In the CalculatorApp.cpp I change

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