草庐IT

c++ - Eigen 库和 C++ 链接器的问题

我尝试将我的C++应用程序链接到“Eigen2.0.15”库。一些细节:我的编译器是:gcc4.0.1版(AppleInc.build5493)我的操作系统是:macos10.5我用g++-I/opt/local/include-I/opt/local/include/eigen2-O2-g...编译代码...构建目标:LBRALL调用:MacOSXC++链接器g++-L/opt/local/lib-o"LBRALL"[...*.o-files]-lcv-lEigen2-lcxcore-lhighgui错误是:`Undefinedsymbols:"Eigen::MatrixBase,3

c++ - gcc 报告基于版本的库的未引用符号

我的一个共享库my.so使用基于版本的符号作为库test.so中的符号@@test_1.2.3。当我将my.so共享库与我的可执行文件链接时,它显示“未引用的符号符号@@test_1.2.3”。当链接行如下时会发生这种情况-g++-omyexecutablemyexecutable.o-L/path-to-my.so-lmy-L/path-to-test.so-ltest如果我将链接链接更改为-g++-omyexecutablemyexecutable.o-L/path-to-my.so-lmy/path-to-test.so/libtest.so它有效。为什么libtest.so在使

c++ - Boost::FileSystem 链接问题

我按照instructionshere在Windows7(64位)上下载并构建了boost库(版本1.47.0).现在,当我想使用Boost::Filesystem库时,我可以毫无问题地包含头文件,它会编译我的代码文件。问题出现在链接处。我收到以下错误;main.obj:errorLNK2019:unresolvedexternalsymbol"classboost::filesystem3::file_status__cdeclboost::filesystem3::detail::status(classboost::filesystem3::pathconst&,classboo

c++ - 未解析的外部符号静态变量(标题中定义的方法使用的变量)

这是.h:classLogger{private:staticintmTresholdSeverity;public:static__declspec(dllexport)voidlog(constchar*message);static__declspec(dllexport)voidlogFormat(constchar*format,...);static__declspec(dllexport)intgetTresholdSeverity(){returnmTresholdSeverity;}static__declspec(dllexport)voidsetTresholdS

c++ - 这个LNK2005怎么解释?

所以,有人带着一个链接失败的项目来找我,错误是LNK2005:符号已在对象中定义(使用VisualStudio2010)。在这种情况下,我知道什么是错误的(因此可以向他们指出正确的解决方案),但我不知道为什么这是错误的一个很好的解释(以防止它再次发生)。//something.h#ifndef_SOMETHING_H#define_SOMETHING_HintmyCoolFunction();intmyAwesomeFunction()//Noteimplementingfunctioninheader{return3;}#endif-//something.cpp#include"s

c++ - 不满意链接错误 : undefined symbol _ZN5boost6system16generic_categoryEv in java (JNI)

我创建了一个.so文件,其中我根本没有使用boost库(当然早些时候我使用过它),但后来我切换到pthreads并删除了所有头文件和boost.so文件链接生成文件。Java文件编译成功。但是,当我尝试使用java-Djava.library.path=libs/-cpbuild/发送它给我以下错误。线程“main”中的异常java.lang.UnsatisfiedLinkError:/home/aahmed/libplxmsg-java/libs/libplxmsgjavaasyncbinder.so:/home/aahmed/libplxmsg-java/libs/libplxms

c++ - 链接错误 : Boost Library on Windows using MinGW

我正在使用Windows764x并安装了MinGW。我的目标是在Eclipse上使用boost库(此处:boost_program_options)。boost库已正确安装,我可以在C:\MinGW\boost_1_53_0\stage\lib下看到文件libboost_program_options-vc90-mt-gd-1_53.lib>我现在尝试通过转到Properties->C/C++Build->Settings->MinGWC++Linker->Libraries在Eclipse中链接它:我在这里输入库搜索路径(-L):C:\MinGW\boost_1_53_0\stage

c++ - Boost iostreams 库存在,但我无法链接它

我知道有很多类似的问题,但我的问题有点不同,而且没有帮助我。我正在使用boost-iostreams库,这是我的问题,我试图将我的程序与库链接:ld-I/usr/include/boost/iostreams/-I/usr/include/boost/iostreams/device/-L/usr/lib/libboost_iostreams.so-lboost-iostreamsfd.o-ox结果是:ld:cannotfind-lboost-iostreams当我试图明确地写它时:ld-I/usr/include/boost/iostreams/-I/usr/include/boos

c++ - Linux gcc 和 Windows Visual Studio 处理静态常量的区别?

我们一直在Linux(gcc)和Windows(VisualStudio)上编译一个库,正如预期的那样,发现在两个平台上获得干净编译所需的东西之间存在细微但不显着的差异。今天,我将gcc编译器标志更改为使用-fPIC(以启用共享库)。当我们测试将程序链接到库时,我们开始出现错误(第一次),undefinedreference指向2个在头文件中声明和初始化的静态常量(但不在.cpp中文件)。我找到了thisStackOverflowanswer这似乎解决了这个问题,解释说,即使staticconst在头文件中初始化,它仍然需要在代码文件中定义。进行该更改确实消除了gcc链接器错误。但是,

c++ - 惰性符号绑定(bind)失败 : symbol not found

我有三个头文件inmyproject描述对象Rational,Complex,和RubyObject.前两个是模板。所有这些都可以使用在头文件中定义的复制构造函数相互转换——除了那些从constRubyObject&构造Rational和Complex的构造函数,定义inasourcefile.注意:这些定义是必要的。如果它们全部进入标题,您将得到circulardependency.不久前,我遇到了someunresolvedsymbolerrors使用源文件中定义的两个复制构造函数。我能够在源文件中包含以下函数voidnm_init_data(){nm::RubyObjectobj