标签: codeblocks

Code :: Blocks和Boost Asio.它不会工作

我无法在Code :: Blocks中编译Boost.Asio.我安装并编译了Boost C++库,并运行了给定的测试示例.现在我想让Boost.Asio运行.

这是编译器调用:

mingw32-g++.exe -L"C:\Program Files (x86)\boost\boost_1_49_0" -o bin\Debug\server.exe obj\Debug\server.o D:\CodeBlocksIDE\CodeBlocks\lib\libboost_filesystem-mgw44-mt-1_49.a D:\CodeBlocksIDE\CodeBlocks\lib\libboost_system-mgw44-mt-1_49.a

这是输出(有关更多信息,请参阅链接):

boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to 'WSAStartup@8'
boost/asio/detail/impl/winsock_init.ipp:48: undefined reference to 'WSAStartup@0'
boost/asio/detail/impl/socket_ops.ipps:50: undefined reference to 'WSASetLastError@4'
boost/asio/detail/impl/socket_ops.ipps:178: undefined reference to 'GetAcceptExSockaddrs@32'
boost/asio/detail/impl/socket_ops.ipps:296: undefined reference to 'closesocket@4'
Run Code Online (Sandbox Code Playgroud)

这是代码:

//
// server.cpp
// ~~~~~~~~~~
//
// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) …
Run Code Online (Sandbox Code Playgroud)

c++ windows codeblocks boost-asio

2
推荐指数
1
解决办法
5104
查看次数

code::blocks 的 OpenGL 设置“找不到 -lXxf86vm”

我正在为学校建立一个开发环境。我们将使用 GLUT 进行图形编程。我在 Ubuntu 上安装了 freeglut 使用

sudo apt-get install freeglut3-dev
Run Code Online (Sandbox Code Playgroud)

我将使用 code::blocks 来编写所有内容(根据讲师的规范)但是当我尝试在 code::blocks 中构建默认的 GLUT 项目时,我得到以下信息

Compiling: main.cpp 
Linking console executable: bin/Debug/glut_test
/usr/bin/ld: cannot find -lXxf86vm
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

在我看来,我缺少一些依赖,但我终其一生都无法弄清楚它是什么。我不知道-lXxf86vm是什么,Google 或我能找到的任何其他论坛也不知道。

有没有人有想法?

更新 1) 这可能与我在这台笔记本电脑中有一块 Nvidia Optimus 卡的事实有关。

我也尝试运行默认的 OpenGL 项目,但它抛出以下错误

main: X server has no OpenGL GLX extension
Run Code Online (Sandbox Code Playgroud)

我将尝试安装大黄蜂,看看它是否能让我在任何地方

opengl glut codeblocks freeglut

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

为什么要使用递归来求一个数的阶乘?

为什么我们不能直接使用它呢main
为什么要有递归呢?

#include<stdio.h>
int factorial(int n);
int main()
{
    int n;
    printf("Enter an positive integer: ");
    scanf("%d",&n);
    printf("Factorial of %d = %ld", n, factorial(n));
    return 0;
}

int factorial(int n)
{
    if(n!=1)
    return n*factorial(n-1);
}
Run Code Online (Sandbox Code Playgroud)

c codeblocks

2
推荐指数
1
解决办法
259
查看次数

禁止在使用 Code::Blocks IDE 创建的应用程序中弹出控制台

我正在使用Code::Blocks版本 13.12 和 GNU GCC 编译器。我最近在 Windows 7 上安装并开始使用这些工具。尽管我不认为语言是一个促成因素,但我使用此环境来创建 C 和 C++ 应用程序。

在获得调试或发布目标可执行文件的干净构建后,然后单击绿色“运行”或红色“调试/运行”工具栏按钮,我看到控制台弹出窗口闪烁(出现,然后关闭),即使对于以下代码不向 写入任何内容stdout。例如...

int main(void)
{
    int a = 1;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

...产生一个控制台弹出窗口。

谁能描述如何设置 Code::Blocks IDE 来抑制控制台弹出窗口?

注意:我已经在此处此处查看了与此问题相关的答案。这些帖子是相关的,其中一个帖子作为另一个帖子的重复项被关闭,但两者的答案都没有解决这个问题。(即因为我的系统不使用Avast,Avast 与该问题完全无关)

codeblocks

2
推荐指数
1
解决办法
1507
查看次数

双斜线与三斜线注释

我似乎无法在网上找到任何关于此的信息。

//This is a comment
///This is a darker comment
Run Code Online (Sandbox Code Playgroud)

在 CodeBlocks 中,如果我以第一种方式发表评论,则几乎不可能看到(浅色主题,而不是深色)。如果我用第二种方式,它会使评论变暗,我可以更好地看到它。

C::B显然对两者的处理方式不同。这些真的有区别吗?

c++ comments codeblocks

2
推荐指数
1
解决办法
2376
查看次数

如何修复代码块中的“解析器仍在解析文件”弹出窗口

所以我没有更改我的代码块编辑器中的任何设置,但这似乎是我对代码块编辑器的新手,如果有人能解释它是如何弹出的以便我可以修复它,我听说人们会禁用代码完成来修复这个问题但我从来没有遇到过这样的问题

我曾尝试禁用代码完成这确实解决了问题,但通常不会在代码完成的情况下执行此操作,而且我不希望将其关闭

c++ codeblocks

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

使用 Visual Studio 2012 编译时,此代码给我错误,但使用代码块没问题

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <vector>
#include <iterator>

#define ADDR "c:\\Users\\Library2\\Desktop\\Books record\\"

using namespace std;

int main()
{
   ifstream fin(ADDR "reportcard.csv", ios::binary);
   string line;
   int rowCount=0;
   int rowIdx=0; 

   while(getline(fin,line)){
       rowCount++;
   }

   vector<string> data[**rowCount**];//this rowCount gave me "expression must have a constant value"

   fin.clear(); 
   fin.seekg(fin.beg); 

   while(getline(fin,line)) 
   {
      stringstream ss(line);  
      string value;
      while(getline(ss,value,',')){       
         data[rowIdx].push_back(value);
      }
      rowIdx++;   
   }

   fin.close();

   int colNum;
   string colName = "LAST PERSON";
   static int it;

   for(vector<string>::iterator it = data[0].begin(); it != data[0].end(); ++it)
   {
       if …
Run Code Online (Sandbox Code Playgroud)

c++ constants codeblocks visual-studio-2012

2
推荐指数
1
解决办法
63
查看次数

在 Windows 上的 Code::Blocks 中编译 SDL2 + OpenGL + GLAD 项目:未定义的引用

我正在检查创建使用 OpenGL 代码的 Windows 应用程序的不同变体。我对 OpenGL Core Profile(所谓的“现代 OpenGL”)特别感兴趣。我正在使用 Code::Blocks 作为我的 IDE。

\n\n

首先,我编写了一个简单的 WinAPI 应用程序。它工作得很好,直到我尝试运行一些核心代码。这告诉我,如果我想在 Windows 中使用现代 OpenGL,WinAPI 在这里不起作用,因为它是通过立即模式修复的。

\n\n

因此,我的下一步是使用 GLFW + GLAD 制作一个项目(在https://glad.dav1d.de/站点上生成)。在这种方法中,OpenGL 函数存在一些未解析的符号,但 GLAD 修复了这个问题,我的项目也完成了。编译运行没有问题。

\n\n

这次我想测试 SDL 变体。我下载了 SDL2 标头和库,并将它们放入 C::B 安装中的正确文件夹中。起初,我编写了一个简单的仅 SDL2 应用程序,它运行良好,这表明我在构建选项中包含库和链接不会让编译器因我的代码而阻塞。

\n\n

现在我添加了一些使用 opengl 核心功能的代码。最初编译该代码会导致编译器抱怨这些函数。我通过再次添加 GLAD 解决了这些问题,就像我之前的项目一样,它工作正常,但只能编译。当尝试链接我的程序时,编译器会抛出很多这样的错误:

\n\n
g++.exe  -o bin\\Debug\\OpenGL_SDL.exe obj\\Debug\\glad.o obj\\Debug\\main.o  -static-libstdc++ -static-libgcc -static -lmingw32 -lSDL2main -lSDL2 -lglew32 -opengl32 -lglu32 -mwindows  \nC:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib\\libSDL2.a(SDL_hidapi.o): In function `PLATFORM_hid_enumerate\':\n/Users/valve/release/SDL/SDL2-2.0.12-source/foo-x64/../src/hidapi/windows/hid.c:354: undefined reference to `__imp_SetupDiGetClassDevsA\'\n/Users/valve/release/SDL/SDL2-2.0.12-source/foo-x64/../src/hidapi/windows/hid.c:354: undefined reference to `__imp_SetupDiEnumDeviceInterfaces\'\n/Users/valve/release/SDL/SDL2-2.0.12-source/foo-x64/../src/hidapi/windows/hid.c:378: undefined reference to `__imp_SetupDiGetDeviceInterfaceDetailA\'\n/Users/valve/release/SDL/SDL2-2.0.12-source/foo-x64/../src/hidapi/windows/hid.c:415: undefined …
Run Code Online (Sandbox Code Playgroud)

c++ opengl gcc codeblocks sdl-2

2
推荐指数
1
解决办法
2702
查看次数

可执行文件(用C编写)是否有某种内存限制可以无问题地运行?

我正在使用C做一个项目,CodeBlocks是我的IDE.Windows Vista是操作系统.我在已经运行的代码中添加了一些新东西,现在可执行文件每次都崩溃了.编译后我没有错误.计算机和编程不是我的领域,但我怀疑它可能与某种内存限制有关(如果存在甚至有意义).我这样说是因为我正在使用三种不同的3D矩阵/维度阵列:

  • 1500x5x2
  • 1500x5x12
  • 1500x5x200

然后,我有另外两个维度1500的1D阵列.这一切都运行良好.

当我添加另外三个尺寸为1500x5的2D矩阵/阵列时,它开始崩溃.如果我评论一些现有的矩阵,新的矩阵工作正常,但一次只能一个.

(顺便说一句,所有上面提到的矩阵都是INT类型,并用指针和callocs定义)

有什么建议?

c memory crash codeblocks

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

代码块中的-fpermissive选项.我在哪里放置"-fpermissive"选项?

#include <iostream>
#include <fstream>
#include <stdio.h>
#include <math.h>
Run Code Online (Sandbox Code Playgroud)

我需要这个代码的帮助.我的编译器一直要求我使用-fpermissive选项,但我不知道在哪里输入它.我已经粘贴了下面的代码和显示的错误.

using namespace std;

int cx = 0, cy = 0;

double x =0, y=0,  r = 5;


int main(){

ofstream myfile;

myfile.open("dingo.txt");

for(int g =0 ; g <= 360; g++)

//find x and y

//Get points of a circle.

x = cx + r * cos(g);

y = cy + r * sin(g);

//This is what pops up below:

//In function int main()':

//Error: name lookup of 'g' changed for ISO …
Run Code Online (Sandbox Code Playgroud)

c++ codeblocks

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