编译共享库linux gcc / g ++ cpp

时间:2017-12-05 18:21:24

标签: c++ linux gcc shared-libraries ld

我已成功编译并创建了一个共享对象,但我不确定它是否真正与DLL共享和链接/模拟。你能否告诉我它是否正确?     我有shared.h,main.cpp,nameOfLib.cpp。

shared.h

#ifndef SHARED_H
   #define SHARED_H
   int helpingLib();
#endif

main.cpp

#include "shared.h"
#pragma once

int main(){
 helpingLib();
 return 0;
}

nameOfLib.cpp

#pragma once
int helpingLib(){ return 20;}

Console:
g++ -shared -fPIC nameOfLib.cpp -o renameTo.so
//create local var 
export $MY_LD_PATH = /home/student/Documents/Total/LinuxXlib/renameTo.so
g++ main.cpp -Wl,$MY_LD_PATH -o executable

首先是它是一个真正可共享的图书馆? 即使在nameOfLib.cpp

中使用复杂的cpp代码,它也能正常工作

1 个答案:

答案 0 :(得分:0)

  

我不确定它是否真正共享

是的,是的。

您的命令行链接此共享库是错误的。这样做:

g++ main.cpp -o executable /home/student/Documents/Total/LinuxXlib/renameTo.so