将C ++库链接到Modelica

时间:2016-11-18 23:05:07

标签: c++ c modelica extern-c

我正在尝试在Modelica中使用C ++库。 Modelica编译器从Modelica源生成c,然后调用c编译器来创建可执行文件。 Modelica提供了一种调用c函数的机制。我创建了一个包装器:

//myWrapper.cpp
#include "headers_of_cpp_library.h"

extern "C" double call_a_cpp_fn(double a, double b){
    return cpp_fn(a,b);
}

外部C代码可以动态链接到Modelica可执行文件,或者如果代码是纯c,则可以使用生成的c编译它。我这里唯一的选择是走动态链接路线。这是用于构建C ++库的Makefile

all: myWrapper.cpp
        clang++ -fPIC -shared -LaCppLib -o libmywrappedcpp.so myWrapper.cpp

当我运行Modelica编译器时,由于存在需要动态链接的c ++库,我得到一些链接错误。

undefined reference to symbol '__cxa_free_exception@@CXXABI_1.3'

有没有办法构建libmywrappedcpp.so,以便Modelica系统调用的c编译器不必尝试链接c ++?

0 个答案:

没有答案