Linker G++;在windows上:无法fild-llua5.1

Linker G++;在windows上:无法fild-llua5.1,linker,g++,Linker,G++,早上好 我正在尝试使用bjam二进制文件和g++(mingw)构建luabind Lua根目录位于“D:\Dev\Lua-5.1.4\”中 *.a文件:“D:\Dev\lua-5.1.4\lib\libluadll.dll.a” *.dll文件:“D:\Dev\lua-5.1.4\lib\luadll.dll” 所有这些*.o文件都编译得很好,但当它开始链接时,出现了一些问题: gcc.link.dll bin\gcc-mingw-4.4.1\debug\libluabindd.dll.a d:

早上好

我正在尝试使用bjam二进制文件和g++(mingw)构建luabind

Lua根目录位于“D:\Dev\Lua-5.1.4\”中

*.a文件:“D:\Dev\lua-5.1.4\lib\libluadll.dll.a”

*.dll文件:“D:\Dev\lua-5.1.4\lib\luadll.dll”

所有这些*.o文件都编译得很好,但当它开始链接时,出现了一些问题:

gcc.link.dll bin\gcc-mingw-4.4.1\debug\libluabindd.dll.a
d:/programms/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/b
in/ld.exe: cannot find -llibluadll.dll.a
collect2: ld returned 1 exit status

"g++" -L"D:\Dev\lua-5.1.4\lib"  "-Wl,--out-implib,bin\gcc-mingw-4.4.1\debug\
libluabindd.dll.a" -o "bin\gcc-mingw-4.4.1\debug\libluabindd.dll"  -shared -Wl,-
-start-group "bin\gcc-mingw-4.4.1\debug\src\class.o" "bin\gcc-mingw-4.4.1\debug\
src\class_info.o" "bin\gcc-mingw-4.4.1\debug\src\class_registry.o" "bin\gcc-ming
w-4.4.1\debug\src\class_rep.o" "bin\gcc-mingw-4.4.1\debug\src\create_class.o" "b
in\gcc-mingw-4.4.1\debug\src\error.o" "bin\gcc-mingw-4.4.1\debug\src\exception_h
andler.o" "bin\gcc-mingw-4.4.1\debug\src\function.o" "bin\gcc-mingw-4.4.1\debug\
src\inheritance.o" "bin\gcc-mingw-4.4.1\debug\src\link_compatibility.o" "bin\gcc
-mingw-4.4.1\debug\src\object_rep.o" "bin\gcc-mingw-4.4.1\debug\src\open.o" "bin
\gcc-mingw-4.4.1\debug\src\pcall.o" "bin\gcc-mingw-4.4.1\debug\src\scope.o" "bin
\gcc-mingw-4.4.1\debug\src\stack_content_by_name.o" "bin\gcc-mingw-4.4.1\debug\s
rc\weak_ref.o" "bin\gcc-mingw-4.4.1\debug\src\wrapper_base.o"  -Wl,-Bstatic  -Wl
,-Bdynamic -llibluadll.dll.a -Wl,--end-group -g

...failed gcc.link.dll bin\gcc-mingw-4.4.1\debug\libluabindd.dll.a bin\gcc-mingw
-4.4.1\debug\libluabindd.dll...
...failed updating 2 targets...
因此,我将libluadll.dll.a重命名为lua5.1,lua5.1.a,但它仍然打印相同的错误消息


事先谢谢。

命令行的
g++
部分错误:

-llibluadll.dll.a
如果要链接到
libfoo.dll
,则正确的链接器标志为
-lfoo
(无库,无dll)


如果您有一个静态归档文件,并且想要一个静态链接,只需命名归档文件,不带
-l
前缀(如果找不到,请指定路径)。

首先,
-l{name}
指令搜索
lib{name}.dll
lib{name}.a
。因此,您的应该是
-llua
,而不是
-llibluadll.dll.a


其次,Lua库是否也使用g++编译?由不同编译器编译的对象文件和库通常不兼容。

谢谢!现在可以了。我想如果我使用code::blocks+minwg编译它,如果我现在只使用g++编译它,它应该可以工作。