我正在阅读http://daleswanson.blogspot.com/2012/07/how-to-compile-c-code-in-notepad-with.html并决定尝试这一点,以便我可以继续在Notepad ++中编写代码并缩短编译/运行周期。
当我尝试将编译/运行代码输入NppExec时,它无效。我现在的代码是:
npp_save
cd "$(C:\Users\Bart\Desktop\new delete me)"
g++ "$(test.cpp)" -o $(testme.exe) -march=native -O3
NPP_RUN $(testme.exe)
这是基于我给出的第一个链接:
npp_save
cd "$(CURRENT_DIRECTORY)"
g++ "$(FILE_NAME)" -o $(NAME_PART) -march=native -O3
NPP_RUN $(NAME_PART)
Notepad ++在其控制台中提供了以下信息:
NPP_SAVE: C:\Users\Bart\Desktop\new delete me\test.cpp
CD:
Current directory: C:\Program Files (x86)\Notepad++
g++ "" -o -march=native -O3
CreateProcess() failed with error code 2:
The system cannot find the file specified.
NPP_RUN:
- empty command
从其他页面来看,似乎我只需要粘贴该代码,所有大写字词都不是要替换但是是变量。所以我使用了这段代码:
npp_save
cd "$(CURRENT_DIRECTORY)"
g++ "$(FILE_NAME)" -o $(NAME_PART) -march=native -O3
NPP_RUN $(NAME_PART)
在Notepad ++控制台中提供了以下内容:
NPP_SAVE: C:\Users\Bart\Desktop\new delete me\test.cpp
CD: C:\Users\Bart\Desktop\new delete me
Current directory: C:\Users\Bart\Desktop\new delete me
g++ "test.cpp" -o test -march=native -O3
CreateProcess() failed with error code 2:
The system cannot find the file specified.
NPP_RUN: test
- the specified file was not found
以下是我为完成工作所做的工作:
我从安装了MinGW Installation Manager的http://sourceforge.net/projects/mingw/files/下载了mingw-get-setup.exe。然后我用它来安装mingw32-gcc - ++包,以及mingw32-libz.dll和mingw32-libz.dev包
在Notepad ++中,我使用插件管理器安装NppExec插件。
我可以先在命令窗口中手动编译代码来运行我的代码。 Notepad ++抱怨它缺少一个库,因此我在编译时使用以下标志: g ++ test.cpp -static-libgcc -static-libstdc ++
如果我在Notepad ++中点击F5(或单击Run菜单中的Run),我可以选择从命令行编译创建的a.exe文件,它会弹出一个命令窗口并运行该代码,这样工作正常。
但是当我尝试自动化编译/运行时,似乎我的更改目录命令在NppExec中由于某种原因而无法正常工作。
以下是我发现的一些其他stackoverflow帖子,它们解决了类似的问题,但似乎并不适用于我。我没有任何积分,所以我无法回复其中任何一点:
好吧,看起来我链接的第一篇文章有一个部分解决方案 - 它看起来像(尽管在帖子名称中提到了c文件)它总结了如何编译perl脚本。它说将以下内容放在NppExec窗口中:
NPP_SAVE
CD $(CURRENT_DIRECTORY)
C:\MinGW32\bin\gcc.exe -g "$(FILE_NAME)"
a.exe
它只是" a"在最后一行,但这与" a.exe"相同。而且这种方式更具人性化。话虽如此,这不是一个完整的解决方案。这只是在Notepad ++的内部控制台中运行文件,在屏幕的底部,我希望它能弹出一个窗口,如果我使用Notepad ++那就会发生这种情况。 F5从其directoy运行我编译的程序。
答案 0 :(得分:5)
我从这里得到了一个有效的代码(我编辑了一下):
http://windowsbro.blogspot.hu/2012/10/compile-with-notepad-any-language.html
npp_save
g++ "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
npp_run $(CURRENT_DIRECTORY)\$(NAME_PART).exe
在此表单中,它编译源文件旁边的二进制文件。如果您将最后一行更改为:
cmd /c "$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
然后程序在NppExec控制台中运行cmd.exe
。
答案 1 :(得分:1)
作为大 Notepad ++粉丝和C ++新手,我花了一点时间来理解并遵循说明。
这里缺少一部分,如果你像我一样,重新开始并且不了解MinGW编译器。您可能想先设置那个。
如果MinGW编译器不在您的环境路径中(或者不喜欢它:可移植版本/策略限制),那么您可以遵循此。
选择核心软件包,确保它们都在同一个版本上,否则会产生奇怪的错误,例如在编译/运行时丢失stddef.h
个文件。我从MinGW Installation Manager中选择了这些:
npp_save
VCD C:\MinGW\bin\
g++ "$(FULL_CURRENT_PATH)" -o
"$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
cmd /c "$(CURRENT_DIRECTORY)\$(NAME_PART).exe"
或者,如果您想从任何位置运行已编译的程序,可以将MinGW添加到您的环境路径中,可以在website上找到一个很好的解释。 这样你就可以跳过指向MinGW目录:
cd C:\MinGW\bin\
答案 2 :(得分:0)
关于你的上一个问题如何在自己的窗口中而不是在notepad ++控制台中启动a.exe:尝试用以下内容替换最后一行a.exe:
NPP_RUN cmd /k a
npp_run是npp_exec的命令,此处它启动命令“cmd / k a”,cmd / k执行“/ k”之后的命令,并在a.exe终止后保持窗口打开。
答案 3 :(得分:0)
我写了一个要求用户的工作代码
我还照顾了空目录和名称,因此不应出现任何错误。 我很期待改善这一点,但现在可以使用。
library(dplyr)
var_order = df %>%
group_by(class, variable_short) %>%
summarize(var_mean = mean(variable_importance)) %>%
ungroup() %>%
arrange(class, desc(var_mean)) %>%
pull(variable_short)
df$variable_short = factor(df$variable_short, levels = var_order)
ggplot(df, aes(x = variable_short, y = variable_importance)) +
geom_boxplot(aes(colour = class), outlier.colour = NA) +
geom_point(position = position_dodge(width = 0.75), aes(group = class))
请注意,我在脚本中添加了SDL文件。只需删除它们。 希望它会有所帮助。