发布
社区首页 >问答首页 >Visual代码中OS上的库无法工作(SFML、OpenGL和更多.)ld:在体系结构x86_64中找不到符号

Visual代码中OS上的库无法工作(SFML、OpenGL和更多.)ld:在体系结构x86_64中找不到符号
EN

Stack Overflow用户
提问于 2022-01-28 13:23:45
回答 1查看 450关注 0票数 -1

我用(带有g++编译器)在我的Mac (Intel)上编写了一个程序,我连接的任何库(标准库除外,我通过brew安装了其他库)都会出现相同的错误。

下面是我的程序给出这个错误的一个例子。关于function.hpp和func,不要注意。它不会产生错误。我写这个是为了好玩,展示代码是一件很遗憾的事,因为有一个丑陋的OOP。

请帮我修一下,因为没有图书馆,我将无法在学习上取得进一步的进步。我是一个初学者,所以我可能不太了解,因此,如果我得到尽可能少的复杂的事情。

关于相似之处的评论:“您不能正常编写OOP,但您希望使用库,深入学习”或“如果您不满意这些错误会导致错误”或一些一般性建议:“这里一切都很简单:学习x86_64的体系结构,重写您的操作系统,然后编写编译器等等”--请不要编写,我正在寻求具体的帮助和实用的建议。

代码语言:javascript
代码运行次数:0
复制
#include <iostream>
#include <SFML/Graphics.hpp>
#include "function.hpp"
using namespace std;

int main(int argc, char const *argv[])
{
    double k[] = {1.0,2.0,3.0};
    func F = func(k, (long)3);
    F.ShowF_x();

    while (!sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
    {
        cout << "Press esc and find out if it works" << endl;
    }

    return 0;
}
  • C++
  • macOS
  • x86-64
代码语言:javascript
代码运行次数:0
复制
Undefined symbols for architecture x86_64:
  "sf::Keyboard::isKeyPressed(sf::Keyboard::Key)", referenced from:
      _main in main-61ac6e.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
EN

Stack Overflow用户

发布于 2022-02-01 13:18:44

我想你使用的是SFML的错误版本。确保您使用的是版本的MacOS。在下载页面上,确保您使用的是MacOS/clang版本。

其次。检查Visual设置是否设置为SFML用于MacOS的正确版本。意思是C++11!我认为,默认情况下,C++14在Visual中使用。

您也可以尝试使用您的终端编译它。我能够用以下命令编译它:

代码语言:javascript
代码运行次数:0
复制
g++ test.cpp -I/Users/name/Downloads/cpptest -L/Users/name/Downloads/cpptest/lib -l sfml-graphics -l sfml-window

文件夹内容:

代码语言:javascript
代码运行次数:0
复制
cpptest
├── SFML       -> Folder with SFML headers
├── lib        -> SFML lib folder
└── test.cpp   -> your code

编辑:我从您在这个问题中的一个注释中看到,在您的属性文件中,cppstandard设置为C++17。请确保您的Visual设置设置为使用C++11。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70894489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档