小编zeb*_*und的帖子

重定位在NASM x86_64中截断为适合错误

我正在使用配备Intel Core 2 CPU和2GB RAM的计算机.SO是Ubuntu 9.04.当我尝试编译此代码时:

;programma per la simulazione di un terminale su PC, ottenuto utilizzando l'8250

;in condizione di loopback , cioè Tx=Rx


section .code64

section .data


TXDATA  EQU 03F8H ;TRASMETTITORE

RXDATA  EQU 03F8H ;RICEVITORE

BAUDLSB  EQU 03F8H ;DIVISORE DI BAUD RATE IN LSB

BAUDMSB  EQU 03F9H ;DIVISORE DI BAUD RATE IN MSB

INTENABLE EQU 03F9H ;REGISTRO DI ABILITAZIONE DELL'INTERRUZIONE

INTIDENTIF EQU 03FAH ;REGISTRO DI IDENTIFICAZIONE DELL'INTERRUZIONE

LINECTRL EQU 03FBH ;REGISTRO DI CONTROLLO DELLA LINEA

MODEMCTRL EQU 03FCH …
Run Code Online (Sandbox Code Playgroud)

linker nasm relocation truncated

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

编译错误:在'&'标记之前预期')'

这是我真的不明白的事情:我没有看到任何真正使这个错误发生的事情.

这是班级:

namespace Engine_Main {

class SceneManager
{
public:
    SceneManager(Engine& engine);
    void createScene();
private:
    Ogre::SceneManager * mSceneMgr;
};


}
Run Code Online (Sandbox Code Playgroud)

除了一些其他类以供参考:

#ifndef ENGINE_H
#define ENGINE_H

#include <OGRE/OgreSceneManager.h>
#include <OGRE/OgreRoot.h>
#include "scenemanager.h"
#include "playerinput.h"

namespace Engine_Main {

class Engine
{
public:
    Engine();
    ~Engine();

    void initGameLoop();

    PlayerInput * getPlayerInput();
    PlayerMovement * getPlayerMovement();
    Ogre::Root * getOgreRoot();

private:

    //fields
    PlayerInput * mPInput;
    PlayerMovement * mPMovement;
    Ogre::Root * mRoot;
    //methods
    void registerInput();
    void createScene();
    void renderPosition();
};

}

#endif // ENGINE_H

#include "engine.h"


namespace Engine_Main { …
Run Code Online (Sandbox Code Playgroud)

c++ syntax-error pass-by-reference

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

CMake对主的未定义引用

当我尝试使用编译程序时make,出现了对主错误的未定义引用。但是,main存在于我的src目录中,我对自己做错的事情感到困惑。

我假设这add_executable([title] [source])是用于将源文件添加到编译中的命令。

基于cmake教程

cmake_minimum_required(VERSION 2.6)
project(opengl_02)
add_executable(opengl_02 opengl_02.cpp)
add_executable(main main.cpp)
add_executable(geometrics geometrics.cpp)
set (opengl_02_version_major 1)
set (openfl_02_version_minor 0)

#configure the header file to pass some of the CMake settings 
#to the source code

configure_file(
    "${PROJECT_SOURCE_DIR}/opengl_02_config.h.in"
    "${PROJECT_BINARY_DIR}/opengl_02_config.h"
    )

#add the binary tree to the search path for include files
#so that it will find tutorialconfig.h

include_directories("{PROJECT_BINARY_DIR}")

add_executable(opengl_02_config opengl_02_config.cpp)
Run Code Online (Sandbox Code Playgroud)

为什么我的主文件没有被引用?

c++ compilation cmake linker-errors

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

我的编译器是否与它认为重载函数混淆了?

我有以下标头功能:

float computeDistance3(Vector3f& vec_a, Vector3f& vec_b);

float computeDotProduct3(Vector3f& vecta, Vector3f& vectb);

float computeGeoDotProd3(Vector3f& vecta, Vector3f& vectb);
Run Code Online (Sandbox Code Playgroud)

具有以下定义

float computeDistance3(Vector3f& vec_a, Vector3f& vec_b) {
    float x = vec_a.x - vec_b.x;
    float y = vec_a.y - vec_b.y;
    float z = vec_a.z - vec_b.z;

    return sqrt((x * x) + (y * y) + (z * z));
}

float computeDotProduct3(Vector3f& vec_a, Vector3f vec_b) {
    return (vec_a.x * vec_b.x) 
         + (vec_a.y * vec_b.y) 
         + (vec_a.z * vec_b.z);
}

float computeGeoDotProd3(Vector3f& vecta, Vector3f& vectb) {
    float …
Run Code Online (Sandbox Code Playgroud)

c++ overloading compiler-errors function

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

Sinf - 它存在于 C++ 中吗?

sinf我很好奇通过包含 .c++来知道该函数是否存在于 C++ 中math.h

当在 Qt Creator 中查看我的自动完成功能时,它似乎没有弹出。这让我想知道是否出于某种原因它被删除了。谷歌搜索似乎也没有弹出很多参考文献;其中大部分是针对直 C 的。

那么,这一点能否得到证实呢?

c++ trigonometry math.h

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

C++编译器问题

给出以下两个头文件:

#ifndef EVENT_HANDLER_H
#define EVENT_HANDLER_H

#include <SFML/Window.hpp>
#include <SFML/Window/Event.hpp>
#include "window_handler.h"

class EventHandler
{
public:
    EventHandler(WindowHandler & classOwner);

    WindowHandler * m_windowHandler;

private:
    bool m_leftKeyDown;
    bool m_rightKeyDown;
    bool m_upKeyDown;
    bool m_downKeyDown;

    unsigned int m_mouseX;
    unsigned int m_mouseY;

};

#endif
Run Code Online (Sandbox Code Playgroud)

#ifndef WINDOW_HANDLER_H
#define WINDOW_HANDLER_H

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include "event_handler.h"

class WindowHandler
{
public:
    WindowHandler();
    sf::Window m_app;

private:
    EventHandler m_eventHandler;
};
#endif
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

In file included from window_handler.h:6:0,
                 from main.cpp:3:
event_handler.h:13:29: error: expected ‘)’ before ‘&’ token
event_handler.h:15:2: error: ‘WindowHandler’ does …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors

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

为什么我不能将这个全局实例化为指针?

我的源文件似乎给我一个错误,我不明白为什么它是我得到这个错误,因为它似乎有点徒劳.我还想了解的是我能做些什么才能达到同样的效果.我现在将省略细节,但如图所示,我希望这是一个全局对象指针.

#include "functions.h" 

App::Game* game = new Game;

void display_func() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    game->render_objects();
    glFlush();  
}

void init(int argc, char** argv) {
    glutInit(&argc, argv);
    game->init_window();
    glutDisplayFunc(display_func);
    game->init();
    glutMainLoop();
}
Run Code Online (Sandbox Code Playgroud)

编译错误

functions.cpp:3:23: error: expected type-specifier before ‘Game’
functions.cpp:3:23: error: cannot convert ‘int*’ to ‘App::Game*’ in initialization
Run Code Online (Sandbox Code Playgroud)

我知道我无法在头文件中初始化它,所以我有什么选择?

c++ pointers compiler-errors global-variables

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

在0xccccc访问读取违规

我不知道为什么会这样; 一些谷歌搜索让我相信它是由于不正确的内存管理,而其他人则说这是因为链接到可执行文件的无效.DLL.我似乎无法解决这个问题,因为我能想到的唯一.DLL是无效的.我的freeglut .DLL,但它本身没有任何问题.

我要做的就是创建一个窗口.

我的代码发生了什么?我做错了什么,我该如何解决?

WinMain

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
LPSTR lpszCmdLine, int nCmdShow) {

    WNDCLASSEX wc;
    HWND hwnd;
    MSG     msg;
    bool    done;

    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
    wc.lpszClassName = L"someclass";

    if (!RegisterClassEx(&wc)) { //Error: 
        MessageBox(NULL, L"Class registration has failed!", L"Error!", MB_OK | MB_ICONINFORMATION);
        return 0;
    }

    hwnd = …
Run Code Online (Sandbox Code Playgroud)

c++ winapi runtime-error visual-c++

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

Typedef矢量迭代器

每当我做

typedef std::vector< SomeType >::iterator

我得到错误:

error: wrong number of template arguments (1, should be 5)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?是否可以对c ++向量或向量迭代器进行类型定义?

c++ iterator typedef vector

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

iOS中的UIControlEvents可以一起进行OR运算吗?

假设我有以下代码:

[somevalue_field 
  addTarget:self 
  action:@selector(somevalue_fieldDidChange:)
  forControlEvents:UIControlEventEditingDidEnd | UIControlEventTouchDragExit |
                   UIControlEVentTouchDragOutside ];
Run Code Online (Sandbox Code Playgroud)

这些UIControlEvents的按位ORing是否实际上在组合它们的效果方面一起工作,这样如果这些事件中的任何一个发生,选择器中的方法将触发?

或者是否会导致太多位串在一起以适合一个整数?

objective-c ios bitwise-or uicontrolevents

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

使用枚举关闭switch/case语句的编译器警告

假设您有一个枚举类型,其值为50多个条目.曾经有一段时间我曾用这个数量的条目切换/设置枚举值,但仅用于检查,例如,从中检查2到5个条目.

例如,OpenGL将其大多数枚举粘贴在一个枚举类型中,称为GLenum.这些值的范围从GL_VERTEX_SHADERto GL_STREAM_DRAWGL_TRIANGLESto GL_ARRAY_BUFFER等.

正如您所看到的,虽然这些与更大的图景有关,但它们的使用环境并不相互关联.

我在Linux中的MinGW/GCC上生成了警告,其中每个警告都记录了其类型声明中列出的每个枚举值.我不确定VC++上是否会发生这种情况,但我认为无论如何我都会考虑它以防万一.

换句话说,生成的警告数量是TotalEnumValues - AmountOfCaseStatements针对每个枚举值,前提是并非所有枚举都已在语句本身中进行了说明,如果您的枚举类型包含至少100个条目,很容易导致100多个编译器警告.

我经常使用if/else来容纳这个,但是当检查枚举值超过一个条目时(这实际上非常罕见,因为枚举的目的通常需要条件逻辑来补充它),我一直都是容易使用开关/外壳,因为我发现它更美观(即使它只是编译成if/else语句,无论如何;))

那么,这个警告是否可以关闭?如果是这样,怎么样?

c c++ enumeration compiler-warnings visual-c++

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