【问题标题】:What library to include for std::vector in Tizen?Tizen 中的 std::vector 要包含什么库?
【发布时间】:2015-04-02 13:32:20
【问题描述】:

我想将 std::vector 用于使用 Tizen 创建的应用程序,但我找不到要包含的正确库以使我的 std::vector 被识别... 我有一个语法错误... 是否有等效于 Tizen 特有的 std::vector ?我搜索了网络,但没有找到任何东西......

我试过#include <vector> Tizen 无法识别它,这就是我的问题,因为在“普通”C++ 中它可以正常工作。只有我将 Tizen 与 Tizen IDE(Eclipse 插件)一起使用,它无法识别该库,所以我想知道我需要包含哪个库(我遇到了一个致命错误:使用包含时找不到文件我提到过)。

我无法发布图片,所以这里是错误消息的抄本:

类型名称需要说明符或限定符
语法错误
预期的表达”

关于这条线的所有内容:

std::vector<int> vect;

好的,我找到了答案。似乎 Tizen 使用的是 C 而不是 C++……我没有看到它,因为我在 C++ 中编写代码时有时会使用一些库,它们应该包含在内。无论如何,我现在只需要找到向量的 C 等价物,我的问题就会得到解决。

【问题讨论】:

  • 试试#include &lt;vector&gt;
  • 当您提出此类问题时,请显示您尝试的包含内容以及您收到的错误消息。否则,您是在要求人们猜测问题所在。屏幕顶部的“帮助”链接可让您获得更多有关在 Stack Overflow 上提出好问题的有用信息。
  • 请包含错误信息。 "I have a syntax error" 对于调试目的不够具体。
  • 嗯,这些是错误消息的部分。这行代码的上下文是什么?请阅读本页:How to create a Minimal, Complete, and Verifiable example

标签: c++ vector include tizen tizen-native-app


【解决方案1】:

你说:我搜索了网络,但没有找到任何东西......

Google "std::vector" 第一个命中是

http://en.cppreference.com/w/cpp/container/vector 其中说:

在标题&lt;vector&gt;中定义

所以答案是:学习使用 Google。

【讨论】:

  • 谢谢你的回答,但我试过了^^ 问题是当我尝试包含这个标题时,Tizen 无法识别它。 #include 不起作用^^ 这就是问题的本质。
  • @姚明:“不行”是什么意思?电脑会起火吗?
  • “致命错误:找不到文件向量”。对不起,我不够具体^^
【解决方案2】:

https://developer.tizen.org/dev-guide/2.2.0/

Tizen C++ 应用程序支持基于标准 C++ ANSI ISO 14882 2003 的 C++,其中包括标准模板库 (STL)。这有助于开发人员以最小的努力将基于预先存在的标准库的应用程序迁移到 Tizen 平台。

更具体地说,Tizen 支持完整的 libstdc++v3 集,包括标准 C++ ANSI ISO 14882 2003 中指定的标准 C++ 函数和整个标准模板库 (http://www.sgi.com/tech/stl/)。

可以通过以标准方式包含相关头文件来使用这些方法,例如“#include &lt;stdio&gt;”。 对标准 C++ 库的支持扩展到完整的 libstdc++v3 模块、命名空间和类集。 如需更多信息,请参阅此Web site

备注: Tizen 不支持基于语言环境的功能。

所以#include &lt;vector&gt; 应该可以正常工作。

既然你说你不能包含 任何 C++ 头文件,我怀疑问题在于编译器将你的代码编译为 C 而不是 C++。确认您的文件具有 .cpp 扩展名,并在项目中查看文件的属性以确认 IDE 将文件视为 C++。 (我不知道那个设置在哪里,我没有 Eclipse)。 This link 说删除您的项目并创建一个 C++ 项目而不是 C 项目,然后重新导入您的文件。 This link 说你可以设置“文件类型”,但也暗示它不太好用。

【讨论】:

  • #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; 但那些是 C 库对吗?
  • @姚明:正确。你试过#include &lt;cstdio&gt;#include &lt;cstdlib&gt;,C++ 版本吗?
  • “致命错误:找不到文件”再次...也许我需要下载一些东西?告诉 Eclipse 在哪里查找这些文件?
  • 您正在编译的文件的完整文件名是什么?此外,IDE 是否有一个视图,您可以在其中查看项目中的文件,右键单击此文件并查看其属性?我怀疑编译器认为你有一个 C 文件而不是 C++。
  • 确实我的文件名是:"cecinestpasuntest.c"(是的,我是法国人^^)。所以是的,.c 而不是 .cpp 我没注意...
【解决方案3】:

我认为错误的答案被接受了...线索在 OP 使用的标签中。

Tizen Studio 使用的编译器根据文件扩展名确定源文件或头文件是 C 还是 C++。所以如果你的头文件是 .h 并且你包含 那么编译器会报错,因为没有向量的 C 等效库。

如果你将你的头文件重命名为 .hpp,或者你的源文件重命名为 .cpp,然后重新编译,那么它将不会出错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2020-02-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多