在 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) 我一直在尝试处理有关编译单元的问题。
我得到的错误是
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) 我从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
这是我的课
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表达式必须有类类型错误.有任何解决这个问题的方法吗?
编辑 -我的构建系统有问题。我仍在弄清楚到底是什么,但是gcc产生了奇怪的结果(即使它是一个.cpp文件),但是一旦使用,g++它就会按预期工作。
对于我一直遇到的问题,这是一个非常减少的测试用例,其中使用数字包装器类(我认为应该内联)使我的程序慢10倍。
这与优化级别无关(使用-O0和尝试-O3)。
我在包装器类中缺少一些细节吗?
我有以下程序,其中定义了一个包装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 ++功能的编译时间是多少?我有兴趣选择正确的方法来在我的库头文件中实现一些通用代码,并且我想花一些时间为图书馆用户考虑。粗略和/或相对的数字就可以了。
我对以下情况特别感兴趣:
{ return true; })PS:请不要谈论我过早的优化。无论如何,有关编译时间的信息将对C ++开发人员很有趣。
更新:阐明了我正在优化的代码在库头文件中,因此其编译时间对于库用户而言绝对重要。
更新:改写该问题以免引起别人的疑问。
当我同时声明时,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>,则可以正确编译。
我刚开始使用“使用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,
如果我在 Mac 上编译 Go 程序(显然是针对 Linux 架构)并将其推送到 Linux 服务器上运行,会不会有任何性能损失?
我在某处读到 Go 编译器会针对正在编译的特定硬件优化二进制文件,例如用于多线程的 CPU 内核数量等?这是真的吗?
在一台机器上编译 Go 代码并在另一台机器上运行它是否安全(不会降低性能)?
compilation ×10
c++ ×5
java ×2
performance ×2
assembly ×1
c ×1
c++11 ×1
constexpr ×1
deployment ×1
gcc ×1
go ×1
haskell ×1
include ×1
intellisense ×1
mingw-w64 ×1
netbeans ×1
optimization ×1
pragma ×1
templates ×1