无法通过 VIM 运行链接脚本
Can't run a linkage script through VIM
-
您好,我编写了一个编译多个 cpp 和目标文件的 bash 脚本在 G++ 中。我的目标是通过 :!在 vim 中运行脚本,但是它在 vim 中不起作用,只有当我在外面时。
-
此外,我想为什么在脚本中使用%没有给我当前文件,但给出了错误相反。
脚本:
#!/bin/bash
# Search for the main module and remove the ext.
delimain=`grep main *.cpp | cut -d. -f1`
# Checks if there are also object files
if [ -f ./*.o ]; then
g++ -g *.cpp *.o -o $delimain.exe
# If There are only cpp file
else
g++ -g *.cpp -o $delimain.exe
fi
谢谢!
回复您的评论
我正在使用 ubuntu 13.10 别名:别名链接"sh ~/bin/lin_script %"
- 你不应该使用显式解释器调用 shell 脚本;
#!/bin/bash
第一行已经告诉 shell 要使用哪个解释器。你显然是 Bash 的初学者;尝试阅读一些介绍以获得更好的理解。 - 别名在 Vim 中不起作用,因为它们只在交互式 shell 中定义,但从 Vim 启动的命令通常在非交互式 shell 中启动(因为这更快,并且附带更少不必要的东西)。
- 别名由 shell 解释,但
%
符号对 Vim 来说是特殊的。两者是不一样的。请参阅我的另一个答案如何将文件名传递给脚本。
您说得对,当提供给 Vim 中的 Ex 命令时,%
会自动扩展,但这不适用于外部脚本。你要做的是在调用外部脚本时传递当前文件,并在其中引用命令行参数:
维姆内部:
:!linkage.sh %
在您的脚本中:
if [ $# -gt 0 ]; then
delimain=$1
else
delimain=`grep ...
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- C++ 运行时链接器错误 (liblog4cpp.so.5) Eclipse
- 运行 C++ 单元测试时LNK2005链接错误
- 'make check' GLIBC 运行时的链接问题
- 如何在 android ndk 上链接 C 和 C++ 代码,以及 C 和 C++ 运行时库(包括 STL)?
- 为什么每当我尝试运行此链接列表删除功能时都会收到分段错误错误?
- 为什么C++可执行文件在与较新的libstdc++.so链接时运行得更快?
- 生成文件无法在运行时链接库
- 微控制器的首次 gcc 链接器脚本编译但不运行
- 运行程序时找不到共享对象库,但在编译过程中链接了它
- C++:链接库两次,全局构造函数运行两次吗?
- std :: list(双重链接列表)未知运行时错误
- C++ / GoogleTest - 如何在链接目录中为每个测试运行安装程序
- 模型依赖关系目标,在运行时链接
- 动态加载库和运行时误解的显式链接
- 不满意的链接错误,当使用LLVM运行javacpp预设时
- CMake:运行链接命令时出错:%1不是有效的Win32应用程序
- 无法通过 VIM 运行链接脚本
- CMake(Android工具链)-运行链接命令时出错:没有这样的文件或目录
- 无法让谷歌测试与 ubuntu 一起运行(链接器错误)