Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse,构建共享库的最佳方法? 对于C++和使用Eclipse,我是相当新的。p> 我在VisualStudio 2012中有一个C++的静态库 > VisualStudio中的C++ /CLI包装器. 现在我在Linux中用 Eclipse < /强>(朱诺Service Relp 2)和 Gcc4.2.4. /P>来构建本地C++代码。_C++_Eclipse_Gcc - Fatal编程技术网

Eclipse,构建共享库的最佳方法? 对于C++和使用Eclipse,我是相当新的。p> 我在VisualStudio 2012中有一个C++的静态库 > VisualStudio中的C++ /CLI包装器. 现在我在Linux中用 Eclipse < /强>(朱诺Service Relp 2)和 Gcc4.2.4. /P>来构建本地C++代码。

Eclipse,构建共享库的最佳方法? 对于C++和使用Eclipse,我是相当新的。p> 我在VisualStudio 2012中有一个C++的静态库 > VisualStudio中的C++ /CLI包装器. 现在我在Linux中用 Eclipse < /强>(朱诺Service Relp 2)和 Gcc4.2.4. /P>来构建本地C++代码。,c++,eclipse,gcc,C++,Eclipse,Gcc,我在Eclipse中创建了一个共享库空项目,并添加了所有的.h和.cpp文件,然后让Eclipse进行构建。然而我得到了错误 relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC 在项目->设置> -GCC C++编译器> >杂项>其他标志>中添加了强> -fpic 标志。 我不知道有谁能熟练使用Linux/Eclipse

我在Eclipse中创建了一个共享库空项目,并添加了所有的.h和.cpp文件,然后让Eclipse进行构建。然而我得到了错误

relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

在项目->设置> -GCC C++编译器> >杂项>其他标志>中添加了<>强> -fpic 标志。 我不知道有谁能熟练使用Linux/Eclipse,所以我不确定我是否选择了最佳路径

有没有比我刚才描述的更好的/更正确的方法来构建共享库?
我采取的方法有什么问题吗?

添加
-fPIC
是正确的做法,你应该会没事的


共享库在加载时需要重新定位(通过
ldd
),主要有两种方法:加载时重新定位和位置独立代码(PIC),后者是现代解决方案和体系结构中的主流。

和我一样考虑使用Eclipse?允许它创建它的makefile和所有的东西,那也可以吗?或者,如果我自己创建一个makefile,并创建一个“使用现有代码的makefile项目”会更好?我认为使用Eclipse的“共享库”项目是可以的。如果您对Makefile/s感到满意,那么直接管理某些方面就更容易了,但是您在问题中没有提到任何具体的复杂性(除了-fPIC),因此我认为您应该同时继续使用Eclipse。此外,我刚刚用谷歌“用Eclipse构建一个共享库”做了这件事,出现了很多好的页面。