获取无效或损坏的文件LNK1107:尝试链接 OpenSceneGraph 教程.dll时无法0x378读取
Getting LNK1107 invalid or corrupt file: cannot read at 0x378 when trying to link .dll for OpenSceneGraph tutorial
我正在尝试在Visual Studio上设置OpenSceneGraph,以便我可以运行一些教程,我相信我的问题是我不知道如何在Visual Studios上正确设置环境并让程序正确查看库文件。
有问题的代码仅用于osg智能指针演示
#include <osg/ref_ptr>
#include <osg/Referenced>
#include <iostream>
using namespace std;
class AClass : public osg::Referenced
{
public:
AClass(int id) : _id(id)
{
cout << "Constructing object " << _id << endl;
}
protected:
int _id;
virtual ~AClass()
{
cout << "Destroy " << _id << endl;
}
};
int main()
{
osg::ref_ptr<AClass> obj = new AClass(0);
cout << "Reference count before referring: "
<< obj->referenceCount() << endl;
osg::ref_ptr<AClass> anotherObject = object;
cout << "Referenced count after referring: "
<< object->referenceCount() << endl;
}
如果我在属性>Linker->其他依赖项中指向osgd.lib,这将构建,但是当我尝试运行它时,会发生系统错误,它指出程序无法启动,因为"osgd.ll从您的计算机中丢失",但是如果我指向osgd.dll它将无法构建并引发以下错误: "LNK1107无效或损坏的文件:无法在 OSG1 C:\Users\Monkone\source\OpenSceneGraph-3.6.3-VC2017-64-Debug\bin\osgd.dll 读取0x378"
我在这里做错了什么?
您需要针对 .lib 而不是.dll进行链接。dll 路径必须位于 PATH 中才能正常工作,或者与可执行文件位于同一文件夹中。
相关文章:
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- C++:将外部库链接到dll库
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 不同的Visual Studio版本中缺少.dll
- 从DLL中删除类的实例
- 如何包装第三方DLL在R中使用
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 使用mingw遵循简单的c ++ DLL教程时出错
- 获取无效或损坏的文件LNK1107:尝试链接 OpenSceneGraph 教程.dll时无法0x378读取
- 关于dll编程的良好教程的请求