在glm :: rotate中使用“custom”sin和cos

时间:2015-10-15 11:44:10

标签: c++ glm-math sin math.h

sin来电中,有没有办法使用我自己的cos::std::sin功能代替::std::cosglm::rotate(...)

我能想到的唯一方法是使用宏来替换sin命名空间内的cosstd符号,但我真的不愿意这样做。< / p>

1 个答案:

答案 0 :(得分:3)

使用LD预加载将起作用。

我将用一个小例子来解释。

假设这是我们的主要代码......

int main()
{
   std::cout<< std::sin(1000);
   return 0;
}

如果我编译并运行它,它应该打印0.82688

现在我定义了自己的罪

<强> mysin.hpp

extern "C"
{
    double sin(double);
}

<强> mysin.cpp

#include "mysin.hpp"

double sin(double in)
{
    return in + 10;//do you computation here
}

现在将其编译为共享库

g++ -O2 -c -fPIC mysin.cpp -o mysin.o
g++ -shared -Wl,-soname,libmysin.so mysin.o -o libmysin.so

假设原始程序编译为“a.out”。使用我们的lib预加载

运行它
LD_PRELOAD=./libmysin.so ./a.out

现在结果将是“1010”。