我是 Linux 新手,我正在尝试编译名为DL_POLY_Classic 的科学软件。我下载了 zip 文件dl_class_1.6.tar.gz并使用命令将其解压缩tar xvzf dl_class_1.6.tar.gz。它为我提供了一系列文件夹,其中包含用于程序操作的各种文件,这些文件在程序手册中进行了描述。其中一个名为source 的目录包含许多.f文件等。该手册说要编译代码,需要采用示例/模板 Makefile 之一并修改其中的路径以引导make程序到包含编译器的适当目录。(这个 DL_POLY_Classic 程序是用 Fortran [Fortran 90,我相信]编写的,并且必须用它编译。)
根据一位同事的建议,我尝试使用集群上的 Intel Fortran 编译器 (ifort) 编译此代码。我修改了模板 Makefile 中的目标之一;这个目标现在在 Makefile 中有以下文本:
#========== mpich-c2
mpich-c2: dpp
cp /opt/mpich/ch-p4/include/mpif.h mpif.h
$(MAKE) LD="/opt/mpich_intel/ch-p4/bin/mpif90 -O3 -o" \
LDFLAGS="-L/opt/mpich_intel/ch-p4/lib64 -lmpich" \
TIMER="" \
FC=/opt/intel_fc_80/bin/ifort \
FFLAGS="-c " \
MPICH_F90="/opt/mpich_intel/ch-p4/bin/mpif90" \
CPFLAGS="-D$(STRESS) -DMPI -P -D'pointer=integer'\
-I/opt/mpich_intel/ch-p4/include" \
EX=$(EX) BINROOT=$(BINROOT) $(TYPE)
Run Code Online (Sandbox Code Playgroud)
我按照手册的指示将Makefile 放在源目录中。然后在源 …
我有一台运行 Debian Squeeze 的旧服务器。我正在尝试下载某个包的源代码,以便我可以手动修补它。但是,apt-get source我尝试的每个包都失败了。一个例子:
root@xxxx:/home/myhomedir# apt-get source emacs
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Ignore unavailable target release 'stable' of package 'emacs'
E: Unable to find a source package for
Run Code Online (Sandbox Code Playgroud)
我尝试的每个其他源包都会重复相同的错误。但是,安装具有相同名称的包是可行的(例如apt-get install emacs)。以下是我的内容sources.list:
# the basic archive
deb ftp://ftp.fi.debian.org/debian/ squeeze-lts main non-free contrib
deb-src ftp://ftp.fi.debian.org/debian/ squeeze-lts main non-free contrib
# the security patches
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
Run Code Online (Sandbox Code Playgroud)
我最初认为这是因为我从中得到的错误apt-get …
谁能解释一下为什么头文件被分成 include 目录以及 arch 下?
如果我想链接我的源代码以包含头文件,我实际上应该从哪里获取它?
include/
Run Code Online (Sandbox Code Playgroud)
或者
arch/arm/
Run Code Online (Sandbox Code Playgroud)
我正在 ARM 主机上编写程序(不是交叉编译)
有人可以解释一下内核中头文件的结构吗?它们是如何传播的以及背后的逻辑?
我在理解以下示例中的变量 {_,0} 时遇到困难。
在脚本中tmp.sh:
func()
{
echo $_
echo $0
echo $1
}
Run Code Online (Sandbox Code Playgroud)
使用参数 x 调用 tmp.sh:
~$ ./tmp.sh x
./tmp.sh
./tmp.sh
x
Run Code Online (Sandbox Code Playgroud)
并使用参数 x 获取 tmp.sh:
~$ . ./tmp.sh x
x
bash
x
Run Code Online (Sandbox Code Playgroud)
据我了解$_和$0,后者用于第一个参数,如第一个示例中所示./tmp.sh。为什么它相当于第二个例子中的bash?
扩展为什么.,前者,我不确定,返回带有源 bash 的最后一个参数,相当于无源 bash 中的 $0 。是这样吗?
在使用 Bash 的 Ubuntu 16.04 中,我创建了一个文件$HOME/ulcwe/software_internal.sh,其中包含一个rse()没有调用的函数。该文件源自~/.bashrc(它是由其自身获取的),我可以rse从终端中的任何位置调用,并且它将运行而不会出现错误。
然而,我尝试运行此脚本文件,其中包含对第 36 行的调用rse,但出现此错误:
第 36 行:rse:未找到命令
为什么函数在手动调用(rse在 Bash 中键入并执行)中调用成功,但在 Bash 脚本中调用失败?如何从脚本中成功调用它?
我经常使用这种模式在 GitHub 中执行原始版本的远程 Bash 脚本:
wget -O - https://raw.githubusercontent.com/<username>/<project>/<branch>/<path>/<file> | bash
Run Code Online (Sandbox Code Playgroud)
通常我可以毫无问题地做到这一点,但是由于我将以下代码添加到某个脚本中,我得到了一个无限循环echo(即使我只是将它从 GitHub 复制粘贴到终端并直接执行,它也经常发生):
wget -O - https://raw.githubusercontent.com/<username>/<project>/<branch>/<path>/<file> | bash
Run Code Online (Sandbox Code Playgroud)
我至少可以部分解决这个问题,例如:
while true; do
read -p "Example question: Do you wish to edit the PHP file now?" yn
case $yn in
[Yy]* ) nano PROJECT/PHP_FILE; break;;
[Nn]* ) break;;
* ) echo "Please answer yes or no.";;
esac
done
Run Code Online (Sandbox Code Playgroud)
这表明| bash管道至少会使问题恶化,因为问题总是伴随着它发生。
为什么会echo "Please answer yes or no."“无休止地”发生?(我用CTRLC+停止它C)
您在单行执行命令和/或 …
我正在尝试为我的用户安装程序,因为我没有 sudo 权限。
我尝试dos2unix按如下方式安装软件包:
apt-get source dos2unix
./configure --prefix=$HOME/myapps
make
make install
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
E: You must put some 'source' URIs in your sources.list
Run Code Online (Sandbox Code Playgroud)
由于我无法编辑sources.list,有没有办法让apt-get 读取另一个文件?
所以,我正在编写一个在内核空间中工作的模块。我的代码编译正确并且工作正常。
问题是有一些头文件,我在任何地方都找不到。这对我来说没有意义,为什么头文件不存在时一切正常。他们一定在某个地方。
这些是我在任何地方都找不到的一些头文件(还有更多,但对于我的问题,它们可能就足够了):
#include <asm/errno.h>
#include <asm/socket.h> /* /include/linux/socket.h */
#include <stdarg.h> /* /include/linux/kernel.h */
#include <asm/types.h>
#include <asm/mmiowb.h> /* /include/linux/spinlock.h */
#include <asm/param.h> /* /include/linux/jiffies.h */
Run Code Online (Sandbox Code Playgroud)
尽管x86在 .
而且我不知道在哪里查找这些文件:
#include <generated/timeconst.h> /* /include/linux/jiffies.h */
#include <generated/bounds.h>
#include <generated/autoconf.h> /* /include/linux/kconfig.h */
#include <generated/asm-offsets.h>
Run Code Online (Sandbox Code Playgroud)
我正在linux 内核 5.4.31的以下目录中查找这些文件:
/include
/include/uapi
/arch/x86/include
/arch/x86/include/uapi
Run Code Online (Sandbox Code Playgroud)
我希望可以在上述包含路径中找到这些文件。但是我对编译后处理 linux 头文件的位置和方式知之甚少,因为我在源代码中找到了它们。
我需要一种在终端内的 C 源文件上自动缩进块的方法。根据规范。
前:
int main() {
puts("Hello world");
}
Run Code Online (Sandbox Code Playgroud)
后:
int main()
{
puts("Hello world");
}
Run Code Online (Sandbox Code Playgroud) 请原谅我缺乏专业知识,但我想知道是否可以编译开源 Windows 程序的源代码并在 Linux 上使用它的可执行文件(没有 Wine)。就我而言,它是Ant Renamer,我目前将它与 Wine 一起使用(我对 Linux 替代品不满意,它缺乏一些高级功能或 GUI)。
(学习如何在 linux 上安装程序...)
deja-dup 源代码可以在其 GitHub 存储库上下载。有一个makefile con 包。一旦进入我运行的文件夹:
santi@eoan:~/deja-dup$ make
Run Code Online (Sandbox Code Playgroud)
并得到错误:
The Meson build system
Project name: deja-dup
Project version: 40.6
...
Run-time dependency goa-1.0 found: NO (tried pkgconfig and cmake)
Run-time dependency json-glib-1.0 found: NO (tried pkgconfig and cmake)
meson.build:36:0: ERROR: Dependency "json-glib-1.0" not found, tried pkgconfig and cmake
A full log can be found at /home/santi/deja-dup/builddir/meson-logs/meson-log.txt
make: *** [Makefile:15: configure] Error 1
Run Code Online (Sandbox Code Playgroud)
我正在运行 lubuntu eoan,其中 deja-dup 已更新,或几乎已更新。我想知道出了什么问题以供将来参考。
我正在查看https://deb.debian.org/debian/dists/中的目录。通过比较时间戳,我可以很容易地看出bullseye和stable是同一件事。/etc/apt/sources.list那么,即使我将条目从更改deb https://deb.debian.org/debian/dists/ bullseye main contrib non-free为 ,行为是否没有差异deb https://deb.debian.org/debian/dists/ stable main contrib non-free?
source ×12
apt ×3
make ×3
bash ×2
c ×2
compiling ×2
debian ×2
linux ×2
case ×1
cmake ×1
configure ×1
control-flow ×1
files ×1
indentation ×1
linux-kernel ×1
mpi ×1
pkg-config ×1
remote ×1
shell-script ×1
sudo ×1
windows ×1
x86 ×1