在Vim中的多文件项目中,编译当前文件光标处于打开状态

问题描述

我的目录结构如下:

\myprojects\project1\main.cpp
\myprojects\project1\supportimpl.cpp
\myprojects\project1\supportheader.h
\myprojects\project1\linux\

\myprojects\project1\linux\文件夹包含Makefile

\myprojects\project1\linux\nbproject\文件夹包含Makefile-Debug.mk,其相关部分是:

OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}

${OBJECTDIR}/_ext/5c0/main.o: ../main.cpp
    ${MKDIR} -p ${OBJECTDIR}/_ext/5c0
    ${RM} "$@.d"
    $(COMPILE.cc) -g -D_LINDEBUG -std=c++14 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/5c0/main.o ../main.cpp

${OBJECTDIR}/_ext/5c0/supportimpl.o: ../supportimpl.cpp
    ${MKDIR} -p ${OBJECTDIR}/_ext/5c0
    ${RM} "$@.d"
    $(COMPILE.cc) -g -D_LINDEBUG -std=c++14 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/5c0/supportimpl.o ../supportimpl.cpp

这些的影响是,在构建项目时,将创建以下文件/文件

\myprojects\project1\linux\build\Debug\GNU-Linux\_ext\5c0\main.o\myprojects\project1\linux\build\Debug\GNU-Linux\_ext\5c0\supportimpl.o

Netbeans IDE(我想应该是其他IDE)可以选择仅编译当前在代码编辑器中打开的.cpp文件。 (FWIW,在Netbeans C ++ IDE中,其快捷键是“ Compile File” F9)

在Vim中,如何通过快捷键等效地执行相同操作?也就是说,假设我的Vim光标当前位于supportimpl.cpp的窗口中,我该如何仅编译该文件而不是创建整个项目?在Netbeans中,发出以下命令来完成上述操作:

cd 'myprojects/project1/linux'
rm -rf build/Debug/GNU-Linux/_ext/5c0/supportimpl.o

CLEAN SUCCESSFUL (total time: 130ms)

cd 'myprojects/project1/linux'
/usr/bin/make -f nbproject/Makefile-Debug.mk build/Debug/GNU-Linux/_ext/5c0/supportimpl.o
mkdir -p build/Debug/GNU-Linux/_ext/5c0
rm -f "build/Debug/GNU-Linux/_ext/5c0/supportimpl.o.d"
g++ -fPIC -fno-strict-aliasing -fexceptions -fopenmp   -c -g -D_LINDEBUG -std=c++14 -MMD -MP -MF "build/Debug/GNU-Linux/_ext/5c0/supportimpl.o.d" -o build/Debug/GNU-Linux/_ext/5c0/supportimpl.o ../supportimpl.cpp

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)