あなたの多くは、Windows 8 で Sublime Text 2 エディターを使用しているか、使用していると思います。奇妙なエラーがあります: C++ プログラムをビルドできません。私の目標は、Sublime Text 2 を使用して単純なプログラムをビルドして実行し、Xcode または Codeblocks スタイルで下のウィンドウに出力を表示できるようにすることです。
私の C++.sublime-build (デフォルト設定):
{
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"variants":
[
{
"name": "Run",
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
}
]
}
単純な hello world プログラムをコンパイルすると、コンパイルして正常に実行され、出力が下のパネルの崇高なテキストに表示されます。
しかし、以下のようなより複雑なプログラムを実行すると:
// main.cpp
// LongestIncreasingSubsequence
#include <iostream>
#include <vector>
#include <limits>
using namespace std;
int main(int argc, const char * argv[])
{
int n;
cin >> n;
vector<int> nums(n);
vector<int> lis_so_far(n);
int final_longest = 1;
for (int i=0; i<n; i++) {
cin >> nums[i];
lis_so_far[i] = 1;
}
int so_far;
for (int j=n-1; j>=0; j--) {
so_far = 0;
for (int i=j+1; i<n; i++) {
// cout << "hi" <<endl;
if (nums[i] > nums[j]) {
// cout << "hello" <<endl;
if (lis_so_far[i] > so_far ) {
so_far = lis_so_far[i];
//cout << so_far << endl;
}
}
}
if (j<n-1) {
lis_so_far[j] += so_far;
if (lis_so_far[j] > final_longest) {
final_longest = lis_so_far[j];
}
}
}
for (int i=0; i<n; i++) {
cout << lis_so_far[i] << endl;
}
cout << final_longest << endl;
return 0;
}
、cygwin がインストールされていても、limits.h が見つからないというエラーが表示されます。ST2 は C++ ライブラリがどこにあるかを知っているはずではありませんか?:
C:\Users\Leonardo\Desktop\main5.cpp:11: limits: No such file or directory
[Finished in 6.5s with exit code 1]
#include 制限行にコメントを付けると、ビルドされますが、実行すると、コマンド プロンプトが実行されていなくても、アクセス許可が拒否されたというエラーが表示されます。
/cygnus/cygwin-b20/H-i586-cygwin32/i586-cygwin32/bin/ld: cannot open output file C:\Users\Leonardo\Desktop/main5.exe: Permission denied
collect2: ld returned 1 exit status
何か案は?ST2 を Xcode や Codeblocks のように機能させたいだけです。