cling 添加用户编译的动态库支持

1. 基本用法

#pragma cling add_include_path("inc_directory")
#pragma cling add_library_path("lib_directory")
#pragma cling load("libname")

2. 编译生成动态库

2.1. 书写代码

hello.h

#include <iostream>
using namespace std;
void print();

hello.cpp

#include "hello.h"
void print()
{
   cout << "hello world!\n";
}

2.2. 使用g++生成动态链接文件(.so文件)

$ g++ -fPIC --shared hello.cpp -o libhello.so

2.3. 验证生成的.so文件可用

main.cpp

#include "hello.h"
int main()
{
        print();
        return 0;
}

链接并运行

$ g++ main.cpp -L . -lhello -o main && ./main
hello world!

3. 使用cling测试

[cling]$ #pragma cling add_include_path("/home/user/libtmp/")
[cling]$ #pragma cling add_library_path("/home/user/libtmp")
[cling]$ #pragma cling load("libhello.so")
[cling]$ #include "hello.h"
[cling]$ print()
hello world!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容