我正在尝试使用Cmake,并开始在网站上找到一个简单的教程.这里的c ++代码尽可能简单:
#include <iostream>
int main(int argc, char *argv[])
{
std::cout << "Hello, World!" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Cmake文件是:
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
add_executable(Tutorial main.cpp)
Run Code Online (Sandbox Code Playgroud)
我使用cmake-gui生成Visual Studio C++解决方案和项目文件.我能够构建项目,但是当我尝试运行项目时,我得到一个提示,说明ZERO_CHECK项目已过期,并询问我是否要重建它.当我选择"是"时,我收到一条错误,指出:"无法启动程序..路径../调试/ ALL_BUILD系统找不到指定的文件".我做了很多搜索,但无法找到任何有类似错误的人.有没有人遇到过这样的事情?
#pragma once在编译我一直在研究的项目时,它无法正常工作.稍微阅读了一下这个主题后,我发现使用它的一个缺点是,如果同一个文件位于不同的位置,那么它将不会像使用包含这样的包含警卫的其他方式一样工作:
#ifndef __SOMETHING_H__
#define __SOMETHING_H__
Run Code Online (Sandbox Code Playgroud)
这是错误:
../../engine/scene/../common/../bitsquid/queue.h:78:29: error: redefinition of ‘template<class T> void foundation::queue::reserve(foundation::Queue<T>&, uint32_t)’
../../engine/scene/../common/../bitsquid/queue.h:78:29: error: ‘template<class T> void foundation::queue::reserve(foundation::Queue<T>&, uint32_t)’ previously declared here
Run Code Online (Sandbox Code Playgroud)
您可以看到路径是相同的.我正在使用g ++来编译源代码.我通常会用其他类型的包含警卫替换它,但我想避免这样,因为我没有写库.
gcc版本是4.6.3
我在运行这个程序时得到了java.lang.ArrayIndexOutOfBoundsException:5.
public class TestArray {
public static void main(String[] args) {
int[] someArray = new int[5];
someArray[0] = 5;
someArray[1] = 10;
someArray[2] = 15;
someArray[3] = 20;
someArray[4] = 25;
System.out.println("Array length = " + someArray.length);
for (int i : someArray) {
System.out.println("Element at index " + i + ": " + someArray[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
}
当i大于或等于数组的长度(在这种情况下为5)时,循环是否应该退出?