小编gil*_*_mo的帖子

是否有工具来帮助识别链接器错误?

C++链接错误在大多数情况下是最难确定的.即使在Visual Studio 2012中,链接器消息也很长,含糊不清并且带有错位符号,但最糟糕的部分是:没有帮助工具可以显示错误发生的位置,并且您可以花费很长时间来试图找出错误问题.是否有任何附加工具可以帮助确定链接器错误?

我对该工具的期望是在错误的行中打开相关的源文件,显示可以找到补救措施的二进制文件和依赖项的图表等.

例如,在多重定义符号的情况下,让工具打开在项目上下文中定义符号的所有位置,并提出解决方案.

c++

7
推荐指数
0
解决办法
310
查看次数

用于 Apple Silicon 的 FFmpeg 包

我正在将我们所有的代码移植到 Apple M1 (ARM),我们的一些产品使用 FFmpeg。FFmpeg 是否有任何为 Apple Silicon M1 构建的库包,我在哪里可以找到它们?

macos ffmpeg build

6
推荐指数
2
解决办法
4615
查看次数

GCC 编译器选项 -wno-four-char-constants 和 -wno-multichar

找不到有关 的任何文档-Wno-four-char-constants,但我怀疑它与-Wno-multichar. 我对么?

gcc clang compiler-warnings gcc-warning

5
推荐指数
1
解决办法
2044
查看次数

没有记录 clang 编译器选项?

为了使用 Xcode 将编译器选项迁移到 ARM,我正在寻找有关 clang c++ 编译器/链接器选项的综合文档。我能得到的最接近的是这个页面,但是:

  1. 许多选项不作说明,如-arch-arch_errors_fatal-sub_umbrella等等。
  2. 有在Xcode命令行选项中丢失了这个文档,例如-Wno-four-char-constants-Wshorten-64-to-32等等。

有什么地方可以找到对每个选项都有详尽解释的完整文档吗?请注意,我不需要在这里作为示例给出的选项的含义,仅用于综合参考。

c++ migration xcode clang compiler-options

5
推荐指数
1
解决办法
306
查看次数

添加产生的C++类型是什么

我收到了"模糊调用"编译错误:

short i;
MyFunc(i+1, i+1);
Run Code Online (Sandbox Code Playgroud)

MyFunc有两个定义 - 一个带两个短裤,另一个带两个浮子.

我写的时候:

MyFunc(i, i+1);
Run Code Online (Sandbox Code Playgroud)

没有错误 - 编译器推断短.

我的问题是,为什么"短"+ 1可能会导致浮点,我怎样才能避免遍历所有代码并添加显式的强制转换,例如:

MyFunc((short)(i+1), (short)(i+1));
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ compiler-errors type-conversion

4
推荐指数
1
解决办法
168
查看次数

在 C++ 中调用直接父级

这是一个不断演变的代码的真实故事。我们从基于此结构的许多类开始:

class Base
{
public:
    virtual void doSomething() {}
};

class Derived : public Base
{
public:
    void doSomething() override 
    {
        Base::doSomething(); // Do the basics

        // Do other derived things
    }
};
Run Code Online (Sandbox Code Playgroud)

有一次,我们需要一个介于 Base 和 Derived 之间的类:

class Base;
class Between : public Base;
class Derived : public Between;
Run Code Online (Sandbox Code Playgroud)

为了保持结构,Between::doSomething()首先调用Base。但是现在Derived::doSomething()必须更改为调用Between::doSomething()...

这适用于 Derived 的所有方法,需要搜索和替换许多调用。

最好的解决方案是使用一些 this->std::direct_parent 机制来避免所有替换并允许轻松管理类拓扑。

当然,只有当有一个直接父级时,才应该编译。

有什么办法可以做到这一点吗?如果不是,这可能是 C++ 委员会的功能请求吗?

c++ inheritance

0
推荐指数
1
解决办法
215
查看次数