标签: compilation

空指针异常

在 Netbeans 中编译我的应用程序并在 Netbeans 中运行该应用程序后,它工作得很好。

所有图像加载正常。

尝试双击执行应用程序导致什么也没有发生。

尝试从命令行运行会出现此错误:

Exception in thread "main" java.lang.NullPointerException
     at Entity.<init>(Entity.java:24)
     at Actor.<init>(Actor.java:5)
     at TileEngine.drawMap(TileEngine.java:52)
     at GraphicsCanvas.<init>(GraphicsCanvas.java:32)
     at Main.<init>(Main.java:22)
     at Main.main(Main.java:18)
Run Code Online (Sandbox Code Playgroud)

在 Netbeans 之外编译不会出错并且执行正常。

经过评论的反复试验,我来到了这些对导致问题的 Actor 的匿名调用。这是代码的功能,当注释掉时不会抛出异常。我似乎找不到任何问题。

public class Actor extends Entity
{
    Actor(String filename, int x, int y)
    {
        super(filename, x, y);
    }
}


void drawMap(String imgWalkable, String imgNotWalkable, GraphicsCanvas gp)
    {
        // Since each 1 tile is a tile that can be walked on
        // we need to set the 1 tile to something …
Run Code Online (Sandbox Code Playgroud)

java netbeans compilation

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

错误 LNK2005 结构已在 .obj 文件中定义

我一直在尝试处理有关编译单元的问题。

我得到的错误是

1>frtinvxml.obj : error LNK2005: "struct repFieldInfo det_rep_info" (?det_rep_info@@3UrepFieldInfo@@A) already defined in Frtinv.obj
1>frtinvxml.obj : error LNK2005: "struct repFieldInfo frt_rep_info" (?frt_rep_info@@3UrepFieldInfo@@A) already defined in Frtinv.obj
1>frtinvxml.obj : error LNK2005: "struct FormToolbar * tb" (?tb@@3PAUFormToolbar@@A) already defined in Frtinv.obj
1>frtinvxml.obj : error LNK2005: "struct tagDATE_STRUCT dateFrom" (?dateFrom@@3UtagDATE_STRUCT@@A) already defined in Frtinv.obj
... (It goes on for every variable and method in the header...)
Run Code Online (Sandbox Code Playgroud)

这是我得到的唯一错误。以下是所涉及的每个相应类的包含,按从树上最高到最低的顺序...

***Frtinv.hxx***
#pragma once

#include <voyage.ddh>
#include <vsched.ddh>
# ...

struct frtinvType : public frtinv_type
    {
    int …
Run Code Online (Sandbox Code Playgroud)

c++ compilation pragma include

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

VS2017编译语法不正确的代码,Intellisence缺失

我从VS2017工作赢得C++项目得到这个奇怪的行为:Intellisence丢失 - 我只是输入没有警告的纯文本,它仍然编译:

在此输入图像描述

整个文件中没有显示错误.但是,当我在此函数范围之外的任何地方尝试相同的操作时,一切都按预期工作:

在此输入图像描述

我的通用函数实现中出现问题:

#pragma region Public API
template <typename Key, typename Value>
void BinarySearchTree<Key, Value> ::Put(Key key, Value val)
{
    Node node = root_;
    if(node.key == null)
        sadadasd
        affsa
        dasds
        dasdsad
        asdsad
}

#pragma endregion
Run Code Online (Sandbox Code Playgroud)

类定义如下:

template <typename Key, typename Value>
class BinarySearchTree {};
Run Code Online (Sandbox Code Playgroud)

它再次沉默 - 没有红/黄.编译的代码甚至运行.好像这部分被注释掉了.

尝试重装VS,没有帮助

c++ intellisense compilation compiler-warnings visual-studio-2017

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

如何从源代码编译JDK?

有没有办法从源代码编译 JDK?还有源码的官方下载吗?我想为我的智能手机编译它。

java compilation

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

为什么gcc编译这个而msvc没有

这是我的课

class ContainerStack{
public:
    int getCapacity();
    int getSize();
    const Container& at(int height);
    void take(Container aContainer);
    Container give();

private:
    std::vector<Container> containers();
};
Run Code Online (Sandbox Code Playgroud)

这是getCapacity()和getSize()方法

int ContainerStack::getCapacity(){
    return containers.capacity();
}

int ContainerStack::getSize(){
    return containers.size();
}
Run Code Online (Sandbox Code Playgroud)

GCC编译所有内容没有问题,但在使用Visual Studio 2017时,我得到一个E0153表达式必须有类类型错误.有任何解决这个问题的方法吗?

c++ gcc compiler-errors compilation visual-studio

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

为什么没有内联这个C ++包装器类?

编辑 -我的构建系统有问题。我仍在弄清楚到底是什么,但是gcc产生了奇怪的结果(即使它是一个.cpp文件),但是一旦使用,g++它就会按预期工作。


对于我一直遇到的问题,这是一个非常减少的测试用例,其中使用数字包装器类(我认为应该内联)使我的程序慢10倍。

这与优化级别无关(使用-O0和尝试-O3)。

我在包装器类中缺少一些细节吗?


C ++

我有以下程序,其中定义了一个包装a double并提供+操作符的类:

#include <cstdio>
#include <cstdlib>

#define INLINE __attribute__((always_inline)) inline

struct alignas(8) WrappedDouble {
    double value;

    INLINE friend const WrappedDouble operator+(const WrappedDouble& left, const WrappedDouble& right) {
        return {left.value + right.value};
    };
};

#define doubleType WrappedDouble // either "double" or "WrappedDouble"

int main() {
    int N = 100000000;
    doubleType* arr = (doubleType*)malloc(sizeof(doubleType)*N);
    for (int i = 1; i < N; …
Run Code Online (Sandbox Code Playgroud)

c++ performance assembly compilation c++11

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

不同C ++功能的编译时间

不同的C ++功能的编译时间是多少?我有兴趣选择正确的方法来在我的库头文件中实现一些通用代码,并且我想花一些时间为图书馆用户考虑。粗略和/或相对的数字就可以了。

我对以下情况特别感兴趣:

  • 增加班级专长
  • 添加constexpr函数(仅声明)
  • 添加最简单的constexpr函数(如{ return true; }
  • 在编译时执行最简单的constexpr函数。
  • 实例化类模板
  • 实例化模板别名
  • 实例化变量模板
  • 找到正确的模板类专业化
  • 通过ADL找到合适的功能

PS:请不要谈论我过早的优化。无论如何,有关编译时间的信息将对C ++开发人员很有趣。

更新:阐明了我正在优化的代码在库头文件中,因此其编译时间对于库用户而言绝对重要。

更新:改写该问题以免引起别人的疑问。

c++ templates compilation compiler-optimization constexpr

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

使用vscode,当同时包含“ iosteam”和“ stdio.h”时为什么不能编译?

当我同时声明时,vscode无法编译文件,并且出现错误日志:

    > Executing task: C:\mingw64\bin\gcc.exe -g d:\CODES\C++\try\main.cpp -o d:\CODES\C++\try\main.exe <

C:\Users\16337\AppData\Local\Temp\ccqDR0fO.o: In function `__tcf_0':
C:/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/iostream:74: undefined reference to `std::ios_base::Init::~Init()'
C:\Users\16337\AppData\Local\Temp\ccqDR0fO.o: In function `__static_initialization_and_destruction_0':
C:/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/iostream:74: undefined reference to `std::ios_base::Init::Init()'
collect2.exe: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我的代码很简单:

#include <iostream>
#include <stdio.h>


int main()
{
    printf("print something");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Dev-C ++可以正确编译该代码。

如果删除#include <iostream>,则可以正确编译。

c compilation mingw-w64

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

无法在Haskell中编译问候世界

我刚开始使用“使用Haskell编程”一书来学习haskell。我要尝试做的第一个想法就是简单地从本书中编译世界示例。我在hello.hc文件中的代码是:

main = do
    printStrLn "Hello!"
Run Code Online (Sandbox Code Playgroud)

我使用命令运行ghc

ghc hello.hc
Run Code Online (Sandbox Code Playgroud)

但是我得到的只是一个错误!

hello.hc:1:1: error:
     warning: data definition has no type or storage class
     main = do
     ^

hello.hc:1:1: error:
     warning: type defaults to 'int' in declaration of 'main' [-Wimplicit-int]

hello.hc:1:8: error:
     error: expected expression before 'do'
     main = do
            ^
`gcc.exe' failed in phase `C Compiler'. (Exit code: 1)
Run Code Online (Sandbox Code Playgroud)

我的Haskell平台版本为8.01,

haskell compilation

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

在一台机器上编译 Go 代码并在另一台机器上运行它会降低程序的性能吗?

如果我在 Mac 上编译 Go 程序(显然是针对 Linux 架构)并将其推送到 Linux 服务器上运行,会不会有任何性能损失?

我在某处读到 Go 编译器会针对正在编译的特定硬件优化二进制文件,例如用于多线程的 CPU 内核数量等?这是真的吗?

在一台机器上编译 Go 代码并在另一台机器上运行它是否安全(不会降低性能)?

deployment optimization performance compilation go

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