因此,今天我想制作一个特定的程序包,并且该程序包始终在此处“编译错误”,any1可以告诉我在fdwbackend.h文件中要解决的问题吗? 我不是交流编码器,但我认为这不应该很难。

这是来自终端的日志:

mp41:build H$ make
[  8%] Built target compat
[  8%] Building CXX object src/common/CMakeFiles/common.dir/fdwatch.o
In file included from /Users/H/Documents/gitprojects/pvpgn/src/common/fdwatch.cpp:29:
In file included from /Users/H/Documents/gitprojects/pvpgn/src/common/fdwatch_select.h:31:
/Users/H/Documents/gitprojects/pvpgn/src/common/fdwbackend.h:36:42: error: reference to type
  'const std::string'
  (aka 'const basic_string<char, char_traits<char>, allocator<char> >') could not bind to
  an lvalue of type 'const char [1]'
                    explicit InitError(const std::string& str = "")
                                                          ^     ~~
/Users/H/Documents/gitprojects/pvpgn/src/common/fdwbackend.h:36:42: note: passing argument to
  parameter 'str' here
1 error generated.
make[2]: *** [src/common/CMakeFiles/common.dir/fdwatch.o] Error 1
make[1]: *** [src/common/CMakeFiles/common.dir/all] Error 2
make: *** [all] Error 2

这是fdwbackend.h代码:

#ifndef __PVPGN_FDWBACKEND_INCLUDED__
#define __PVPGN_FDWBACKEND_INCLUDED__

#include <stdexcept>

namespace pvpgn
{

class FDWBackend
{
public:
    class InitError :public std::runtime_error
    {
    public:
        explicit InitError(const std::string& str = "")
            :std::runtime_error(str) {}
        ~InitError() throw() {}
    };

    explicit FDWBackend(int nfds_);
    virtual ~FDWBackend() throw();

    virtual int add(int idx, unsigned rw) = 0;
    virtual int del(int idx) = 0;
    virtual int watch(long timeout_msecs) = 0;
    virtual void handle() = 0;

protected:
    int nfds;
};

}

#endif /* __PVPGN_FDWBACKEND_INCLUDED__ */

感谢thanx

(如果您想查看整个内容: https : //github.com/HarpyWar/pvpgn

===============>>#1 票数:1

您不能将字符串文字定义为引用的默认值。

省略参考,使用普通的按值传递

explicit InitError(const std::string str = "")
        :std::runtime_error(str) {}

  ask by Ferologics translate from so

未解决问题?本站智能推荐:

3回复

生成错误:基本说明符必须命名一个类

我正在尝试使用cmake在Mac OS X中构建一个大项目,并遇到以下无法解决的错误。 码: 此外,我有以下内容: 码: 代码调用(OutputArchive.hpp): 代码serializeutil.cpp 编译器即时通讯可能会出现问题吗?
2回复

当我只有make输出中的可执行文件时,如何创建{ApplicationName} .app捆绑包?

我有Qt / C ++项目,我想为其创建Mac OS版本。 我已经使用cmake机制使用CMakeLists和makefile构建来编写它。 它的功能之一是您可以使用自定义URI方案执行它,因此Mac OS官方文档说它必须写在Info.plist上,但是make build输出仅可执行文件,
1回复

OSX上的OGRE1.9构建错误

我正在尝试使用自制软件安装Ogre v1.9。 brew install ogre --HEAD在某些时候,我得到以下错误: 错误如此之多,所有都在OgreAlignedAllocator.cpp.o 。 我认为有两次定义。 我尝试卸载所有OGRE依赖项,然后再次重新安装它们,但是
1回复

Mac错误:/ bin / sh:npm:找不到命令

我正在尝试构建c ++项目,并看到以下错误:请您看看吗? 我遵循了这个Wiki: sudo:npm:找不到命令,但是它对我不起作用。
1回复

如何修复CMake错误:源目录

我试图通过使用CMake编译简单的c ++文件,但收到以下错误:CMake错误:源目录“/ home / john / Desktop / example”似乎不包含CMakelists.txt 我已经检查了其他相关帖子,但没有一个能帮我解决
2回复

生成软件包时Cmake错误

好吧,我不知道这是怎么回事? 我只是按照我的Macbook上的一些说明(显然是针对ubuntu OS)进行操作。 一切顺利,直到最后一步。 当我make ,我看到以下错误: 我想念什么? 我的Cmakelists.txt文件http://collabedit.com/
1回复

ROLI JUCE Android CMake错误,生成的空白演示应用程序无法在Android Studio中编译

下载Projucer后,我生成了一个空白应用程序,然后将其导出到Android(以调试模式)并在Android Studio中打开了它。 修复了与SDK和NDK版本有关的错误(我将引用更新为使用最新版本进行构建)之后,代码无法在CMake阶段构建,并显示以下错误: 我尝试重新安装Pro
1回复

您只需要构建一次googletest库吗?

因此,首先,我是测试框架的新手,而C ++则相对较新,但是我想将自己的头围放在GoogleTest上。 我正在Windows计算机上运行“ Git for Windows”(MSYS)和MinGW,同时使用Sublime Text作为代码编辑器。 我正在使用make作为构建工具,尽管我对cm
2回复

设置基本的多平台cmake启用项目时需要帮助

tl; dr问题在底部。 我是一个尝试新事物的开发人员 - 我的最后一个毒药是c ++。 由于我将一半的时间花在我的Linux笔记本电脑上而另一半花在Win XP PC上,我试图找到一种方法来创建基本的准系统项目,使用良好的c ++实践(好吧,我从经验中不了解它们,我刚看过他们)。 现
1回复

Windows上的CMake和MinGW编译,不需要-G“ MinGW Makefiles”标志

我想使用CMake和MinGW从Windows PowerShell命令行构建C ++应用程序。 当我以“正常方式”执行此操作时,请使用以下命令: CMake选择Visual Studio作为默认编译器,并且不会为我生成任何Makefile。 我希望CMake使用MinGW作