Visual Studio 获取LNK1107无效或损坏的文件:尝试链接OpenSceneGraph教程的.dll时无法读取0x378

gzszwxb4  于 2023-02-13  发布在  其他
关注(0)|答案(1)|浏览(477)

我试图在visual studio上设置OpenSceneGraph,这样我就可以运行一些教程,我相信我的问题是我不知道如何正确地在visual studio上设置环境,并让程序正确地查看库文件。
这里讨论的代码只是一个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;
    }

如果我在Properties-〉Linker-〉Additional dependencies中指向osgd.lib,则会生成此文件,但当我尝试运行它时,会出现系统错误,指出程序无法启动,因为“osgd.ll在您的计算机中丢失”,但是如果我指向osgd.dll,则无法生成并抛出以下错误:“LNK 1107无效或损坏的文件:无法读取0x 378 OSG 1 C:\用户\蒙克内\源\开放场景图-3.6.3 -VC2017 -64-调试\bin\osgd.dll”
我到底做错了什么?

8cdiaqws

8cdiaqws1#

您需要链接到.lib,而不是. dll。dll路径必须在PATH中才能工作,或者与可执行文件在同一文件夹中。

相关问题