У меня странная проблема при компиляции простой программы на C ++, которая выдает исключение.
main.cc:
#include <stdio.h>
double mean(double a, double b)
{
if((a + b) == 0)
{
throw "Exception:: Numerator is Zero";
}
return (a+b) / 2;`
}
calc.cc:
#include <stdio.h>
double mean(double a, double b)
{
if((a + b) == 0)
{
throw "Exception:: Numerator is Zero";
}
return (a+b) / 2;
}
Когда я скомпилирую, как показано ниже:
Execute the following commands :
Step 2.1 => gcc -maix64 -fpic -c calc.cc
Step 2.2 => gcc -maix64 -shared -o libcalc.so calc.o -lstdc++
Step 2.3 => gcc -maix64 main.cc libcalc.so -lstdc++
И запустить программу, Программа вылетает со следующей ошибкой:
terminate called after throwing an instance of 'char const*'
IOT/Abort trap (core dumped)
Но вместо шага 2.3, если мы используем следующие команды, все работает как положено:
gcc -maix64 main.cc libcalc.so -lstdc++ -lgcc_s
Не могли бы вы помочь решить эту проблему ...