我需要构建一个调用共享对象的Ocaml/C++模块(linux下的.so)
只要编译一个简单的Ocaml/C++存根是一个问题,我管理的东西,但是当我需要将.so与ocamlmklib或ocamlopt链接时,它会失败
我在gcc 4.5(c ++ 0x)下工作
共享对象的文件:
hello.hpp
#include <iostream>
#include <string>
using namespace std;
class HelloApplication
{
public :
HelloApplication();
~HelloApplication();
void say(string s);
};
typedef HelloApplication *(*create_hello)();
Run Code Online (Sandbox Code Playgroud)
hello.cpp:
#include "hello.hpp"
HelloApplication::HelloApplication(){}
HelloApplication::~HelloApplication(){}
void HelloApplication::say(string s)
{
cout << "Hello : " << s << endl;
}
extern "C"
{
HelloApplication *create()
{
return new HelloApplication();
}
}
Run Code Online (Sandbox Code Playgroud)
编译事物的CMake.txt文件:
cmake_minimum_required(VERSION 2.6)
project(testHello_proj)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Release" FORCE)
#set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Debug" FORCE)
set(LIBRARY_OUTPUT_PATH lib/${CMAKE_BUILD_TYPE})
## Compiler flags …Run Code Online (Sandbox Code Playgroud)