链接器找不到现有库
Linker can't find existing library
我最近正在做一个OpenGL项目,决定改用64位,所以我把编译器改为支持64位的g++4.9.2。我也将其他库更改为64位,但编译器找不到系统提供的库Glu32和OpenGL32。我安装了Windows SDK,它提供了64位的库。奇怪的是,这些也有32后缀。。。不管怎样,可能是为了更容易移植。
我已经通过多种方式将路径C:Program FilesMicrosoft SDKsWindowsv7.1Libx64
声明为额外的库目录,包括相对目录、绝对目录和通配符(%ProgramFiles%/…),但它们似乎都不适合链接器:
c:/Program Files (x86)/mingw-w64/i686-4.9.2-win32-sjlj-rt_v3-rev1/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lOpenGL32.Lib
c:/Program Files (x86)/mingw-w64/i686-4.9.2-win32-sjlj-rt_v3-rev1/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lGlU32.Lib
编译指令
g++ -m64 -o dist/Debug/MinGW_64-Windows/engine >>imagine some object files in here<< -Lresource/Glew/lib/Release/x64 -Lresource/SDL/x86_64-w64-mingw32/lib -L"C:Program FilesMicrosoft SDKsWindowsv7.1Libx64" -lSDL2main -lSDL2 -lglew32 -lOpenGL32.Lib -lGlU32.Lib
奇怪的是,这些也有32后缀。。。不管怎样,可能是为了更容易移植。
要保持与使用LoadLibrary
或GetModuleHandle
等函数的程序的源代码兼容性,请保持它们的工作状态,而不必更改这些函数中的字符串。
如果您查看错误,它会告诉您找不到库….lib
。注意.lib
后缀。现在,如果您查看链接器命令行,您将它们指定为-lOpenGL32.lib
和-lGLu32.lib
,这是错误的。传递给-l
参数的参数是没有标准文件名前缀或后缀的库名称。正确的-l
参数将是-lopengl32
和-lglu32
。
相关文章:
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- C++线程找不到函数作为参数(链接器)
- Red Hat:使用<atomic>编译很好,但链接器找不到__atomic_store_16;什么库?
- 找不到 CMake 链接的库
- 静态链接库时,收到链接器错误:找不到 -lgcc_s
- 链接器找不到导入的 DLL 的 LIB 文件
- 链接器找不到库,即使我用 -L 指定了它的位置
- 链接器错误-在ubuntu中找不到CMake和Cuda 10.1的lcudart
- 编译器找不到链接的 OpenCV 库
- 我找不到瓦尔格林德告诉我的记忆链接
- 运行程序时找不到共享对象库,但在编译过程中链接了它
- 链接器找不到 Lua 库定义
- libGL确实存在,但链接器找不到它 - Qt 4.8.7,CentOS 7.5
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- C++:找不到静态链接
- C++链接编辑器找不到函数声明(未定义的引用)
- Ogre 3D共享库与CMAKE链接时,在Linux上执行二进制时找不到
- 使用 msvc /MDd cryptlib.lib 构建 Crypto++ 链接时找不到 cryptopp.lib
- 与 dlopen 的动态链接:找不到符号
- 在运行时找不到链接库 (c++)