标签: codeblocks

"对模板类构造函数的未定义引用

我不知道为什么会发生这种情况,因为我认为我已经正确地声明和定义了所有内容.

我有以下程序,使用模板设计.这是一个简单的队列实现,其成员函数为"add","substract"和"print".

我已经在精细的"nodo_colaypila.h"中为队列定义了节点:

#ifndef NODO_COLAYPILA_H
#define NODO_COLAYPILA_H

#include <iostream>

template <class T> class cola;

template <class T> class nodo_colaypila
{
        T elem;
        nodo_colaypila<T>* sig;
        friend class cola<T>;
    public:
        nodo_colaypila(T, nodo_colaypila<T>*);

};
Run Code Online (Sandbox Code Playgroud)

然后在"nodo_colaypila.cpp"中实现

#include "nodo_colaypila.h"
#include <iostream>

template <class T> nodo_colaypila<T>::nodo_colaypila(T a, nodo_colaypila<T>* siguiente = NULL)
{
    elem = a;
    sig = siguiente;//ctor
}
Run Code Online (Sandbox Code Playgroud)

然后,队列模板类的定义和声明及其功能:

"cola.h":

#ifndef COLA_H
#define COLA_H

#include "nodo_colaypila.h"

template <class T> class cola
{
        nodo_colaypila<T>* ult, pri;
    public:
        cola<T>();
        void anade(T&);
        T saca();
        void print() const;
        virtual …
Run Code Online (Sandbox Code Playgroud)

c++ templates compiler-errors codeblocks

136
推荐指数
3
解决办法
11万
查看次数

C++ Boost:对boost :: system :: generic_category()的未定义引用

我试图Boost在我的项目中包含库,并且一直面临着相同的问题.我在使用Codeblocks IDE的Ubuntu 12.10上,尝试手动从站点读取指令来安装库,但是在使用头文件以及使用前构建的库时出现了错误.

然后我通过terminalby安装了库sudo apt-get install libboost-all-dev.在此之后,在我的Codeblocks程序中,我可以包含标题,#include <boost/regex.hpp>但是当我尝试包含Filesystem库(#include "boost/filesystem/operations.hpp" )的标题时,我收到以下错误:

/usr/include/boost/system/error_code.hpp|214|undefined reference to boost::system::generic_category()'|
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决此错误(特别是在Linux上的Codeblocks中).我真的可以在这里使用一些帮助.

编译器:Gcc
程序代码:仅尝试包含上述文件系统operations.hpp文件.

从Codeblocks构建日志:

Build started on: 20-11-2012 at 18:02.53
Build ended on: 20-11-2012 at 18:02.54
-------------- Build: Debug in libopenFrameworks ---------------
Target is up to date.
-------------- Build: Debug in reader1 ---------------
make -s -f Makefile Debug
linking i686 bin/reader1_debug linux
obj/i686Debug/src/testApp.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
/usr/include/boost/system/error_code.hpp:216: …
Run Code Online (Sandbox Code Playgroud)

c++ linux boost codeblocks

83
推荐指数
6
解决办法
11万
查看次数

无法打开输出文件,权限被拒绝

因此,在尝试使用CodeBlocks编译C++代码时,我不断收到此错误.

无法打开输出文件[filename.exe]权限被拒绝

它只是从今天开始,它是零星的,不一致的.如果我关闭CodeBlocks并重新启动项目,它通常会消失,但并非总是如此.有时它甚至会在我按F9(构建和运行)几次时消失.我总是检查任务管理器,但是从来没有任何.EXE运行我的文件名或与之相关的任何内容.

我也注意到,如果出现这个问题,然后我尝试手动删除.EXE或以其他方式与之交互,Windows告诉我需要管理员权限才能这样做(这是一台私人电脑,据我所知我我是它的管理员).

它第一次出现时,我在代码中添加的唯一超出之前版本的内容就是发送给cout的调试报告 - 几乎没有什么是神秘的.即使没有从先前版本更改代码,有时也会发生这种情况.

这可能是什么?这不是破坏游戏的,但它令人恼火,我宁愿它也不会变得更糟.

编辑:这已经过时了,但是为了防止其他人遇到类似的问题,我目前使用的解决方法是在尝试再次运行代码之前始终删除[filename.exe].这可以避免这个问题,尽管它很烦人.

c++ compiler-errors codeblocks permission-denied

63
推荐指数
4
解决办法
22万
查看次数

如何向Code :: Blocks编译器添加C++ 11支持?

我正在编写一些代码,需要为我的Code :: Blocks 12.11提供C++ 11支持.我使用默认的GNU GCC编译器和MingW一起使用.有什么方法可以做到这一点吗?

codeblocks c++11

59
推荐指数
3
解决办法
10万
查看次数

编译Code :: Blocks中的SDL时,"winapifamily.h:没有这样的文件或目录"

我正在使用LazyFoo的SDL2.0教程,使用Code :: Blocks 13.12.我已经毫无困难地将SDL2链接并在VS2010中运行但是已经更改了IDE并遇到了这个错误:

winapifamily.h:没有这样的文件或目录

我认为一切都是正确的.我已将程序指向我的SDL2 include和lib目录.

Buildlog :(文件中出现错误:..\include\SDL2\SDL_platform.h)

=== Build:在SDL2_Setup中调试(编译器:GNU GCC编译器)===

致命错误:winapifamily.h:没有这样的文件或目录

===构建失败:1个错误,0个警告(0分钟,0秒(秒))===

这是我第一次在这里问一个问题.我在Google上找到答案并在此处搜索现有的问题/答案,但无法解决问题.这是我的代码.

我的代码:

// Using SDL and standard IO
#include <SDL.h>
#include <stdio.h>

// Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main( int argc, char* args[] )
{
    // The window we'll be rendering to
    SDL_Window* window = NULL;

    // The surface contained by the window
    SDL_Surface* screenSurface = NULL;

    // Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO) < 0 ) …
Run Code Online (Sandbox Code Playgroud)

c++ sdl codeblocks sdl-2

48
推荐指数
3
解决办法
5万
查看次数

ld.exe:无法打开输出文件...:权限被拒绝

我最近在Windows 7旗舰版32bit上安装了mingw32的CodeBlocks以消除我的技能,但是这个问题让我有点难过.

我决定发射一个短的Fibonacci发生器,以确保我的设置正常,但我遇到了障碍.

该程序编译,链接和诸如魅力之类的东西,我得到一个相应的可执行文件,按预期运行.

如果我再次尝试编译会出现问题,然后我得到以下内容:

c:/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot open output file bin\Debug\Fibonacci.exe: Permission denied
Run Code Online (Sandbox Code Playgroud)

我甚至无法编辑生成的可执行文件的权限.

我检查了通常的嫌疑人:

  • 可执行文件确实没有运行.
  • 可执行文件的路径是可读/写到mingw32(否则它将无法在第一个位置构建)
  • 我没有运行任何形状或形式的cygwin.

现在有趣的是:通常在几分钟之后,mingw32生成的任何可执行文件都会自动消失而没有任何干预.

我在谷歌上搜索了一下,但大多数其他结果要么含糊不清,要么不适用.

我想知道是否有一些Windows 7安全设置对我的.exe有严重破坏,但我不知道Win 7知道从哪里开始搜索.

有人有主意吗?

c windows codeblocks mingw32 windows-7

45
推荐指数
5
解决办法
17万
查看次数

如何将C程序拆分成多个文件?

我想在两个单独的.c文件中编写我的C函数,并使用我的IDE(Code :: Blocks)将所有内容编译在一起.

如何在Code :: Blocks中设置它?

如何.c从另一个文件中调用一个文件中的函数?

c codeblocks

41
推荐指数
1
解决办法
8万
查看次数

让Clang在Windows上工作

我已经按照以下一步一步的指南进行了操作,经过一些小小的尝试后,我已经设法使用代码编译clang:blocks和MinGW.太好了,所以现在我可以将Clang模块添加到eclipse(为什么有一个IDE,当你可以有四个)并开始编译.

我可以编译一个不使用标准库的简单程序,但不幸的是,当我尝试编译它时:

#include <iostream>
using namespace std;

int main()
{
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

首先我得到这个:

..\src\test.cpp:9:10:致命错误:找不到'iostream'文件

所以我将Mingw标题添加到include路径; 然后我明白了:

'致命错误:'找不到位/ c ++ config.h'文件'

这很奇怪.如果该文件不在'bits /'中,为什么MingW会工作?它是内置于编译器吗?没关系,我找到它的实现并在'bits /'中创建文件.

然后我得到了一大堆错误,包括奇怪的错误,似乎暗示clang没有正确实现预处理器,否则我对预处理器的理解是不正确的.

C:\Program Files\CodeBlocks\MinGW\lib\gcc\mingw32\4.4.1\include\c++/cwchar:45:26: error: expected value in expression
#if _GLIBCXX_HAVE_WCHAR_H
Run Code Online (Sandbox Code Playgroud)

还有更多这样的人.应该是这样的

#if defined(_GLIBCXX_HAVE_WCHAR_H) 
Run Code Online (Sandbox Code Playgroud)

要么

#ifdef _GLIBCXX_HAVE_WCHAR_H?
Run Code Online (Sandbox Code Playgroud)

如果他们是MinGW标准库是错误的.

我假设我错误地认为可以放入clang替换gcc并且它不适用于gnu标准库.任何确认或否认这一点,以及证据支持将是最受欢迎的!

那么,有没有人有一个万无一失的方法来在Windows PC上进行clang编译?网上有关于铿锵声的信息,特别是关于窗户的信息.

我真的很想让clang和LLVM工作,因为它们从我读过的内容中听起来很棒.任何帮助,将不胜感激.

谢谢.

c++ mingw eclipse-cdt codeblocks clang

40
推荐指数
4
解决办法
5万
查看次数

警告:数组下标的类型为char

当我运行这个程序时,我收到警告"数组下标有类型'char'".请帮帮我哪里出错了.我正在使用code :: blocks IDE

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
void NoFive()
{
    long long int cal;
    char alpha[25];
    char given[100] = "the quick brown fox jumped over the cow";
    int num[25];
    int i, k;
    char j;
    j = 'a';
    k = 26;
    cal = 1;
    for(i = 0; i <= 25; i++)
    {
        alpha[i] = j++;
        num[i] = k--;
      //  printf("%c = %d \n", alpha[i], num[i]);
    }
    for(i = 0; i <= (strlen(given) - 1); i++)
    { …
Run Code Online (Sandbox Code Playgroud)

c codeblocks

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

致命错误:iostream.h没有这样的文件或目录

可能重复:
包含时没有这样的文件iostream.h

甚至在用.cpp扩展名命名源文件之后.我的编译器在命令提示符和Codeblocks中都会出现此错误.我该如何解决这个问题?

#include <iostream.h>


int main(){

    cout<<"Hello World!\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ codeblocks

37
推荐指数
3
解决办法
14万
查看次数