编译HelloWorld.c有效; 但是当我尝试添加一些外部库时,它会窒息.
我将.a和.dll文件添加到我的'Libraries'中; 将两者的路径添加到PATH和库路径.我还放了包含文件并配置了Include.据说我拥有的图书馆与win/mingw兼容.他们也为MSVC提供了不同的下载功能.
令人沮丧.ld.exe提供完整路径,显然在那里,我有权读/写它们.我也没有路径包含它们(它们在库路径和路径中).
我不明白为什么这不起作用.
c:/ mingw/bin /../ lib/gcc/mingw32/4.5.2 /../../../../ mingw32/bin/ld.exe:找不到-lC:\ rhino\data\lib\glfw.dll c:/ mingw/bin /../ lib/gcc/mingw32/4.5.2 /../../../../ mingw32/bin/ld.exe:找不到-lC:\rhino\data\lib\libglfwdll.ac:/ mingw/bin /../ lib/gcc/mingw32/4.5.2 /../../../../ mingw32/bin/ld.exe:不能find -lC:\ rhino\data\lib\libglfw.a
C:\Users\rhino>dir C:\rhino\data\lib\libglfw.a
04/15/2011 05:24 PM 70,384 libglfw.a
Run Code Online (Sandbox Code Playgroud)
更新:
我甚至将它们添加到我的C:\ MinGW\lib路径中,它仍然无法找到它们.
Michael Burr指出了在命令行上引用库的正确方法.使用-L交换机给出了库的路径,以及带有交换机的库的名称(库-l的名称是文件名,lib开头没有部分,.a末尾有后缀).
还有一点要指出的是,您正在尝试链接到库的静态(libglfw.a)和动态(glfw.dll)版本,这两个版本都同时包含在下载中.相反,你应该根据你的需要选择一个,并且只链接到那个.
链接静态版本很简单.只需添加-lglfw到命令行即可.
要使用动态库,您应该libglfwdll.a使用-lglfwdll开关链接到dll()的导入库,并从link命令中省略dll本身.基本上,导入库不包含任何对象代码,只包含定义; 实际的代码在dll中.该DLL将在运行时动态链接.(为此,系统必须能够找到dll;即它必须位于当前工作目录中,位于路径中的目录中,或者必须将其目录添加到使用的特殊环境变量中对于这件事;但为了使这变得重要,你首先必须成功构建可执行文件.)