我是比较新的C++,我主要用于在Visual Studio 2013环境下工作。我需要在一个项目中使用这个库,我的工作: https://github.com/s3rvac/cpp-bencoding克++链接的静态库错误
我的第一个问题是:它的问题,如果我建立在Visual Studio或GCC(MinGW的-W64)的图书馆吗?
无论如何,我建立了它使用GCC(4.9.2),因为笔者在他的GitHub上的指示这样做的。我没有错误,我制作了一个名为的库libbencoding.a
现在我想将这个lib文件链接到我自己的项目。这是我被卡住了。所以我创建了一个简单的hello世界程序(main.cpp)。 libbencoding.a的位置是在文件夹C:\ ... \ CPP-bencoding \ build中的\ src
g++ main.cpp -L "C:\...\cpp-bencoding\build\src" -l libbencoding -o foo.exe -std=c++11
然而,这产生错误信息:
C:/Program Files (x86)/mingw-w64/i686-4.9.2-posix-dwarf-rt_v4-rev2/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot
find -llibbencoding
collect2.exe: error: ld returned 1 exit status
我真的在这里感谢一些帮助。
在此先感谢!
'-lencoding',不'lib' – Mat
'其实-lbencoding'。 – immibis
如果我错了,那么人们会纠正我,但是对于你的问题,如果它对图书馆编译的编译器有影响,是的。因为C++没有一个稳定和标准的ABI,例如如果你的库的源代码用方法栏定义了类Foo,g ++可能会把名称class__foo__method__bar放在库二进制文件中,而当进行链接时,可能编译器会查找method__bar__of__class__foo –