我正在使用“文章”模板编写一个小文档。然而,里面没有章节或章节。最顶层的文档结构单元是\subsection{Features}。该文档正在运行,但是当我查看生成的 pdf 时,我看到了标题:
0.1 特点
如何去掉编号中的前导“0”?插入:
\settocdepth{subsection}
但这没有帮助。
我正在使用“文章”模板编写一个小文档。然而,里面没有章节或章节。最顶层的文档结构单元是\subsection{Features}。该文档正在运行,但是当我查看生成的 pdf 时,我看到了标题:
0.1 特点
如何去掉编号中的前导“0”?插入:
\settocdepth{subsection}
但这没有帮助。
问题在标题中描述。没有什么可说的了。我在工作现场战斗了 2 天——我什么都听不懂。最后,我创建了一个可重现性最低的示例。
我们有一个 HTML 文件:
<!DOCTYPE html>
<html>
<head>
<title>Что внутри тега h4 ?</title>
<meta charset="utf-8">
</head>
<body>
<h4>
111
<p>(1880-1938)</p>
222
<p>Возчик артели возчиков, герой Русско-Японской и Первой мировой войн,
полный Георгиевский кавалер;
Расстрелян в г. Томске в 1938 году.</p>
333
</h4>
</body>
</html>
还有一个行为非常奇怪的小 Python 程序:
#!/usr/bin/python3
from bs4 import BeautifulSoup
with open("index.html", "r") as f:
contents = f.read()
soup = BeautifulSoup(contents, 'lxml')
print(f"HTML:")
print(f"Тег Н4 полностью: {soup.h4}")
print(f"Имя тега: {soup.h4.name}")
print(f"Текст внутри тега: {soup.h4.text}")
尝试运行该程序。<h4>
它会将字符串显示为标签的内容111
。也就是说,标签的内容<p>
是不可见的。好吧,就这样吧。但是线条222
也不333
可见!而且,如果我调用该方法.finf_all('p4')
,什么也找不到!
这是库中的错误吗?或者是否有某种禁止在标签内放置任何标签<h?>
?
有一个包含文档模板列表的站点。你必须解析它。
我正在编写一个简单的程序:
# Библиотеки для скрапинга
from bs4 import BeautifulSoup
import requests
# Начальный URL
url = 'https://uristhome.ru/document'
# Делаем запрос и получаем html
html_text = requests.get(url).text
# Парсим HTML в дерево тегов
soup = BeautifulSoup(html_text, 'lxml')
# Ищем строки таблицы
table_rows = soup.findAll('li')
#table_rows = soup.findAll(class_="ln-а")
#table_rows = soup.findAll('li', attrs={'class':'ln-a'})
print(f"Найдено {len(table_rows)} строк в таблице")
#寻找表格行(这些是第15-18行)之后写的内容理论上应该选择我感兴趣的那些li标签。但事实证明,除了最简单的选项外,没有什么是行不通的。
如果您取消注释第 15 行,则按标签名称搜索将起作用并给出:
Найдено 4049 строк в таблице
但是,我需要一个更准确的样本。剩下的三个选项给出一个空结果:
Найдено 0 строк в таблице
似乎我做了所有事情,就像在不同的例子中一样,但什么也没发生。可能是什么问题呢?
Python中有一个教程问题会随机跳转英文维基百科的页面:
from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
pages = set()
def getLinks(pageUrl):
global pages
html = urlopen('http://en.wikipedia.org{}'.format(pageUrl))
bs = BeautifulSoup(html, 'html.parser')
for link in bs.find_all('a', href=re.compile('^(/wiki/)')):
if 'href' in link.attrs:
if link.attrs['href'] not in pages:
#We have encountered a new page
newPage = link.attrs['href']
print(newPage)
pages.add(newPage)
getLinks(newPage)
getLinks('')
一切都很好。但是,如果我尝试使用俄语 wiki 作为基本 URL:
html = urlopen('http://ru.wikipedia.org/wiki/Заглавная_страница{}'.format(pageUrl))
然后抛出错误消息:UnicodeEncodeError:
“ascii”编解码器无法编码字符
分支
我读。还有一个问题:
在 18.04 版上没有这样的东西。终端立即启动。现在,终端窗口打开后,会有很长的停顿。大约一分钟内什么也没有发生。您可以尝试输入一些内容,解释器尚未运行。
许久之后,终端窗口中出现一条消息:
In order to daemonize you must specify a log file, you can use /dev/stdout to log to screen even as a daemon
消息的含义对我来说绝对是神秘的。谁需要作为守护进程运行?为什么?
出现此消息后,会弹出标准 Shell 提示,然后一切正常。这条消息说什么?
我正在准备一份文件,其中包含程序清单和发行示例。我想给这个上色一点。我使用以前多次使用过的技术。但是这个文档中发生了一些奇怪的事情!
前言:
\documentclass[]{article}
\usepackage[usenames]{color,colortbl}
\usepackage[pdftex, unicode]{hyperref}
\usepackage[dvips]{graphicx}
\usepackage{cmap}
\usepackage[english,russian]{babel}
\usepackage[LGR,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{indentfirst}
\usepackage{textcomp}
\usepackage{textgreek}
\usepackage{amsmath}
\usepackage{comment}
\usepackage{longtable}
\usepackage{ucs}
\usepackage{listings}
\pagestyle{plain}
\usepackage{hyperref}
\usepackage{tcolorbox}
我定义列表的颜色和着色:
% Цвета
\definecolor{mygray}{rgb}{0.9, 0.9, 0.85}
\definecolor{gray}{rgb}{0.5, 0.5, 0.5}
\definecolor{lightYellow}{RGB}{0.9,0.9,0.4}
\lstset{
language=SQL,
keepspaces=true,
extendedchars=\true,
inputencoding=utf8,
backgroundcolor=\color{lightYellow},
breaklines=true
}
在我写的文件正文中:
Для Windows:
\begin{lstlisting}[frame=tlBR, caption={Windows}]
sqlite3.exe tut.db
\end{lstlisting}
Для Linux:
\begin{lstlisting}[frame=tlBR, caption={Linux}]
./sqlite3 tut.db
\end{lstlisting}
在生成的文档中,我看到了这个恶心的东西:
tcolorbox 也不着色。可能是什么原因?
标准的 LateX 定义列表构建这样的元素
ТерминЖирным Определяющий текст обычным
但我想要这样:
ТерминЖирным
Определяющий текст обычным
我正在澄清这个问题:是否可以移至定义列表中的新段落,甚至将段落向右移动?
清单很长,所以我想要一些更简单的东西。
有这样一个最小的可重现示例:
\documentclass[a4paper,11pt]{article}
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\begin{document}
("-")
\end{document}
如果我尝试编译 pdf,我会收到错误消息:
TeX capacity exceeded, sorry [input stack size=5000]. ("-"
有两种方法可以克服错误。两种方式都很奇怪......它们是:
编写文档的正文,用带空格的减号字符包围: (" - ") 错误消失,但文档显示不正确。像这样:
(-")
我认为减号的神秘行为(它实际上是一个减号 - 我检查过!)是因为它被认为是一个连字符。但是如何处理这种情况呢?
之前在开发驱动的时候,我没有使用wait_event_interruptible(...),但是现在我有了尝试的欲望。而且我无法理解第二个参数的含义:
在 Jonathan Corbet 的“圣经”LDD3 中(从我的角度来看)模糊不清。它使用英语双重否定,可以这样翻译。俄语翻译说“只要条件评估为真,进程就会继续休眠。”
他在微小的 sleepy.c 驱动程序中给出的示例
static DECLARE_WAIT_QUEUE_HEAD(wq);
static int flag = 0;
ssize_t sleepy_read (struct file *filp, char __user *buf, size_t count, loff_t *pos)
{
printk(KERN_DEBUG "process %i (%s) going to sleep\n",
current->pid, current->comm);
wait_event_interruptible(wq, flag != 0);
flag = 0;
printk(KERN_DEBUG "awoken %i (%s)\n", current->pid, current->comm);
return 0; /* EOF */
}
ssize_t sleepy_write (struct file *filp, const char __user *buf, size_t count,
loff_t *pos)
{
printk(KERN_DEBUG "process %i (%s) awakening the readers...\n",
current->pid, current->comm);
flag = 1;
wake_up_interruptible(&wq);
return count; /* succeed, to avoid retrial */
}
似乎证实了这个论点。
但是,如果您查看此宏的文本,那么(恕我直言)事实证明 - 相反:
#define wait_event_interruptible(wq, condition) \
({ \
int __ret = 0; \
if (!(condition)) \
__wait_event_interruptible(wq, condition, __ret); \
__ret; \
})
我不明白什么?
我正在准备一个相当大的文档,它将(据说)包含\chapter。此外,该文档包含许多列表 - \lstlisting。
存在冲突:如果我声明文档类book,则会为列表生成错误:
Paragraph ended before \lstenv@testopt@ was complete.
如果我声明文档类article,那么它会在以下部分发誓:
Undefined control sequence. \chapter
这个问题有解决方案吗?
我想在文档中放置“注意”、“警告”、提示等特殊块。大致是这样的:
在翻遍了一堆文献和论坛之后,我发现唯一的东西就是使用 awesomebox 包:
\usepackage{awesomebox}
. . .
\notebox{Для получения дополнительной информации о настройке подключения к удаленному интерфейсу см. Руководств...}
这里有两个问题:
“J”是怎么回事?它可以被更理智的东西代替吗?或者也许有一些更简单的方法?
我一直在使用(据称)MTS 大约 2 年,但实际上我一直在使用华为 USB 调制解调器。直到 3 月 7 日,一切都很好。这里的日期(似乎)很重要。
当我早上上班并将调制解调器插入 USB 端口时,我发现该设备未被识别为调制解调器,而是作为普通闪存驱动器。重复尝试(对不同的 USB 连接器,在重新启动后......)并没有导致任何结果 - Ubuntu 没有直接将其视为调制解调器。
该设备工作正常 - 在 Windows 和在家中,在 OpenSuse 下 - 它工作得非常好。
网络管理器看不到调制解调器。当您尝试添加移动网络设备时,列表为空。
在 USB 总线上检测到设备:
# lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 006: ID 12d1:1f01 Huawei Technologies Co., Ltd.
E353/E3131 (Mass storage mode)
当调制解调器插入插槽时,dmesg 输出以下输出:
[ 4292.667606] usb 2-1: new high-speed USB device number 7 using ehci-
pci
[ 4292.801421] usb 2-1: New USB device found, idVendor=12d1,
idProduct=1f01
[ 4292.801434] usb 2-1: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[ 4292.801442] usb 2-1: Product: HUAWEI_MOBILE
[ 4292.801449] usb 2-1: Manufacturer: HUAWEI_MOBILE
[ 4292.801455] usb 2-1: SerialNumber: 0123456789ABCDEF
[ 4292.834936] usb-storage 2-1:1.0: USB Mass Storage device detected
[ 4292.835464] scsi host11: usb-storage 2-1:1.0
[ 4293.842190] scsi 11:0:0:0: CD-ROM HUAWEI Mass
Storage 2.31 PQ: 0 ANSI: 2
[ 4293.843674] scsi 11:0:0:1: Direct-Access HUAWEI TF CARD
Storage 2.31 PQ: 0 ANSI: 2
[ 4293.850227] sr 11:0:0:0: [sr0] scsi-1 drive
[ 4293.850468] sr 11:0:0:0: Attached scsi CD-ROM sr0
[ 4293.850620] sr 11:0:0:0: Attached scsi generic sg1 type 5
[ 4293.851026] sd 11:0:0:1: Attached scsi generic sg2 type 0
[ 4293.856700] sd 11:0:0:1: [sdb] Attached SCSI removable disk
[ 4296.544779] sr 11:0:0:0: [sr0] tag#0 FAILED Result: hostbyte=DID_OK
driverbyte=DRIVER_SENSE
[ 4296.544795] sr 11:0:0:0: [sr0] tag#0 Sense Key : Medium Error
[current]
[ 4296.544805] sr 11:0:0:0: [sr0] tag#0 Add. Sense: Unrecovered read
error
[ 4296.544815] sr 11:0:0:0: [sr0] tag#0 CDB: Read(10) 28 00 00 00 0f fe
00 00 02 00
[ 4296.544822] blk_update_request: critical medium error, dev sr0,
sector 16376
[ 4296.564772] sr 11:0:0:0: [sr0] tag#0 FAILED Result: hostbyte=DID_OK
driverbyte=DRIVER_SENSE
[ 4296.564786] sr 11:0:0:0: [sr0] tag#0 Sense Key : Medium Error
[current]
[ 4296.564794] sr 11:0:0:0: [sr0] tag#0 Add. Sense: Unrecovered read
error
[ 4296.564804] sr 11:0:0:0: [sr0] tag#0 CDB: Read(10) 28 00 00 00 0f fe
00 00 02 00
[ 4296.564811] blk_update_request: critical medium error, dev sr0,
sector 16376
[ 4296.564819] Buffer I/O error on dev sr0, logical block 2047, async
page read
[ 4296.795657] ISO 9660 Extensions: Microsoft Joliet Level 1
[ 4296.804925] ISOFS: changing to secondary root
那些。有读取错误信息。但是为什么它不会干扰 Windows 和 OpenSUSE 下的工作呢?!
但在 Ubuntu 中,虽然作为闪存驱动器,它是可见的,你可以进入它,查看目录。
添加设备字符串
# Huawei
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1f01", RUN+="usb_modeswitch '%b/%k'"
文件 /lib/udev/rules.d/40-usb_modeswitch.rules什么也没给。
在/etc/usb_modeswitch.d目录中创建文件12d1:1f01,内容为:
MessageContent=«555342431234567824000000800008ff52444556434847310000000
0000000»
并没有改善情况。
手动加载usbserial内核模块也没有做任何事情:
# modprobe usbserial
# lsmod | grep usb
usbserial 53248 0
usb_storage 73728 2 uas
usbhid 53248 0
hid 122880 2 hid_generic,usbhid
由于这种情况仅在 Ubuntu 中观察到,从 3 月 7 日开始,我假设当时系统有一定的升级,导致调制解调器出现故障。
我怀疑问题是:
大容量存储模式
有任何想法吗?
用户为其设置整数值的程序的 GUI 中有一个元素。在屏幕上看起来像这样:
这是在程序中实现的,如下所示:
class StepNum(Frame):
"""
Виджет, отображающий номер шага тестирования и позволяющий
изменять значение этого номера.
Содержит виджеты:
* Label - Подпись
* Spinbox - Значение
"""
def __init__(self, parent, stepList):
Frame.__init__(self, parent, relief=RAISED, borderwidth=1)
self.parent = parent
self.initUI(stepList)
def initUI(self, stepList):
Label(self, text="Шаг №").grid(row=0, column=0,
padx=3, sticky='w')
self.sp = Spinbox(self, values=stepList, command=self.spinClicket)
self.sp.grid(row=0, column=1, padx=3, sticky='w')
def spinClicket(self):
new_step_num = self.sp.get()
print("Новое значение: {0}".format(new_step_num))
如果用户单击旋转框箭头,则调用spinClicket函数并打印新值。
然而!!!如果用户直接从键盘向Spinbox编辑字段输入新值,则不会发生任何事情,并且不会调用spinClicket函数。
如何在自旋中拦截这种直接输入?
有一些csv格式的实验数据表。我像这样导入它:
>>> import pandas as pd
>>> df = pd.read_csv('data.csv', sep=',')
>>> df
'Set' 'Rx' 'Traffic' 'Modulation'
0 -67.0 -64.35 15.00 '64-QAM 2/3'
1 -68.0 -65.35 15.00 '16-QAM 3/4'
2 -69.0 -66.85 14.78 '64-QAM 2/3'
3 -70.0 -67.60 15.42 '64-QAM 2/3'
4 -71.0 -68.85 15.04 '64-QAM 2/3'
5 -72.0 -70.35 15.04 '16-QAM 3/4'
6 -73.0 -70.85 15.04 '16-QAM 3/4'
7 -74.0 -71.35 15.28 '16-QAM 3/4'
8 -75.0 -72.60 12.35 '64-QAM 2/3'
9 -76.0 -73.10 11.38 '16-QAM 3/4'
10 -77.0 -74.60 11.64 '16-QAM 3/4'
11 -78.0 -75.60 7.76 '16-QAM 1/2'
12 -79.0 -76.85 7.76 '16-QAM 1/2'
13 -80.0 -77.85 7.52 '16-QAM 1/2'
14 -81.0 -79.35 5.85 'QPSK 3/4'
现在我想绘制一个使用“设置”列作为 X 值的图表。在这张图上,我想看到两条(!)曲线:
matplotlib.pyplot如何做到这一点?我找到了一个指南(Pandas),第一步是从表中选择一列,如下所示:
df = pd.read_csv('apple.csv', index_col='Date', parse_dates=True)
new_sample_df = df.loc['2012-Feb':'2017-Feb', ['Close']]
但是我的第一个数据框索引是数字的,我无法选择我感兴趣的列:
new_sample_df = df.iloc[0:14, ['Rx']]
TypeError: cannot perform reduce with flexible type
但即使我能以某种方式做到这一点,我如何将每个 X 点的两个(!) Y 值传递给绘图函数?尝试了两个建议的选项。它不起作用:-(为了消除歧义,我给出了 CSV 文件本身:
'Set,Rx','Traffic','Modulation'
-67.00, -64.35, 15.00, '64-QAM 2/3'
-68.00, -65.35, 15.00, '16-QAM 3/4'
-69.00, -66.85, 14.78, '64-QAM 2/3'
-70.00, -67.60, 15.42, '64-QAM 2/3'
-71.00, -68.85, 15.04, '64-QAM 2/3'
-72.00, -70.35, 15.04, '16-QAM 3/4'
-73.00, -70.85, 15.04, '16-QAM 3/4'
-74.00, -71.35, 15.28, '16-QAM 3/4'
-75.00, -72.60, 12.35, '64-QAM 2/3'
-76.00, -73.10, 11.38, '16-QAM 3/4'
-77.00, -74.60, 11.64, '16-QAM 3/4'
-78.00, -75.60, 7.76, '16-QAM 1/2'
-79.00, -76.85, 7.76, '16-QAM 1/2'
-80.00, -77.85, 7.52, '16-QAM 1/2'
-81.00, -79.35, 5.85, 'QPSK 3/4'
以及我正在尝试执行的程序的文本,注释掉了两个选项:
#!/usr/bin/env python
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(r'data.csv', quotechar="'")
#1 df.set_index('Set')[['Rx','Traffic']].plot(legend=True, grid=True)
#2 df.set_index("'Set'")[["'Rx'","'Traffic'"]].plot(legend=True, grid=True)
如果取消注释 #1,将显示以下消息:
KeyError: 'Set'
如果您取消注释 #2,则消息会相应更改:
KeyError: "'Set'"
也许重点是我是第三条蟒蛇,而例子是第二条?
荒谬的问题,我猜......但我浏览了一堆链接,仍然不明白如何在不离开iPython解释器的情况下完成此操作。我将尝试解释我想要什么:
我有一堆python文件。我需要快速查看它们并尝试运行它们。通常,输入命令时:
ipython program.py
给出了一些错误信息。要理解它的含义,您需要查看源文本。我希望在启动ipython后我可以执行以下操作:
%load program.py
%run
%edit
%run
. . . .
但没有任何效果。执行%load命令时抛出错误,当我输入%edit时, vi启动,并带有一个空 (!!!) 窗口。
请告诉我如何解决这个愚蠢的问题!
关于PyCharm,Eric,...我知道。但在这种特殊情况下,使用 IDE 并不方便。
虚假错误消息是指程序的启动早已结束并且与当前活动无关。唯一将它们结合在一起的是,当解释器在另一个程序之前未成功启动的文件系统目录中启动时,会发出错误消息。例子:
这是清单:
$ cd
lary@dtk58:~$ python
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from socket import *
>>> exit()
lary@dtk58:~$ cd tmp
lary@dtk58:~/tmp$ python
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from socket import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/lary/tmp/socket.py", line 9, in <module>
mysock = socket(AF_INET, SOCK_STREAM)
NameError: name 'socket' is not defined
socket.py程序本身不再存在。很明显,问题出在某些缓存中……我清除了此目录中的pycache 文件夹- 它没有帮助。
我从代理中读取整数变量,如下所示:
ss = netsnmp.Session(Version=2, DestHost=ip, Community='public')
oid = '...'
vb = netsnmp.Varbind(oid, '0')
vl = netsnmp.VarList(vb)
int_val = ss.get(vl)
我将查询结果转换为整数类型:
return int(int_val[0])
一切正常。尝试对float做同样的事情:
ss = netsnmp.Session(Version=2, DestHost=ip, Community='public')
oid = '...'
vb = netsnmp.Varbind(oid, '0',None,'OPAQUE')
vl = netsnmp.VarList(vb)
float_val = ss.get(vl)
然后转换:
float(float_val[0])
然而,这行不通!抛出一个错误:
translate_asn_type: unhandled asn type (120)
当试图转换一个空值时,程序会中断:
float(float_val[0])
ValueError: could not convert string to float:
问题:如何正确读/写浮点值?
我正在尝试编写一个通过 SNMP 管理复杂设备的程序。我使用 Python 3 作为编程语言。从托管设备读取 SNMP 变量很好。根本无法运行netsnmp.snmpset。例子:
>>> import netsnmp
>>> x1 = '11:22:33:44:55:66'
>>> ss = netsnmp.Session(Version = 2, DestHost = '172.17.132.73', Community="public")
>>> tag = '.1.3.6.1.4.1.<Моя фирма>.5.1.2.1.3.10.1'
>>> vb = netsnmp.Varbind(tag, '0', x1, 'STRING')
>>> snmpe = netsnmp.snmpset(vb, ss)
抛出以下错误:
Traceback (innermost last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.5/dist-packages/netsnmp/client.py", line 246, in snmpset var_list.append(Varbind(arg)) File "/usr/local/lib/python3.5/dist-packages/netsnmp/client.py", line 64, in __init__ match = regex.match(tag) TypeError: expected string or bytes-like object
如果您查看输出中指示的结果,您可以看到发誓进入vb对象中的标记字段。但他绝对是STRING !!!。因此,我完全不清楚错误消息的含义。我试图删除 OID 中的起点,我尝试自己在末尾添加“0” - 没有效果。
什么样的玄学?!
当尝试使用 Net-SNMP 库在 Linux 上构建最简单的应用程序时(打开会话并关闭会话 - 就是这样),会生成以下错误
/usr/include/net-snmp/library/snmp_api.h:706:8: error: unknown type name ‘netsnmp_transport’
我假设未指定某些编译标志,或者未连接某种启用程序。
本质上是一个五行程序:
#include <stdio.h>
#include <stdlib.h>
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/session_api.h>
int main(int argc, char **argv) {
struct snmp_session s;
void * session;
// Выполняем инициализацию переменных
snmp_sess_init(&s);
session = snmp_sess_open(&s);
// Закрываем сессию
rc = snmp_sess_close(&s);
if (rc == 0) {
printf("Неудачное завершение сессии\n");
} else {
printf("Программа завершилась нормально\n");
}
return 0;
}
有人可以解释一下 - 这种情况的原因是什么?
我是一个完整的新手。自然,我收集并启动了hello_world。然后我查看了可执行模块的大小:
$ ls -l
итого 664
drwxrwxr-x 2 lary lary 4096 мар 1 2017 build
drwxrwxr-x 2 lary lary 4096 мар 1 2017 deps
drwxrwxr-x 2 lary lary 4096 мар 1 2017 examples
-rwxrwxr-x 1 lary lary 657056 мар 1 2017 hello_world
drwxrwxr-x 2 lary lary 4096 мар 1 2017 native
数字 657056 不知何故让我心烦意乱。我决定,因为这是一个调试版本,他们只是在那里塞满了各种调试信息,所以他是个大人物。决定收集释放。看了看:
$ ls -l
итого 5152
drwxrwxr-x 2 lary lary 4096 май 22 17:57 build
drwxrwxr-x 2 lary lary 4096 май 22 17:57 deps
drwxrwxr-x 2 lary lary 4096 май 22 17:57 examples
-rwxrwxr-x 2 lary lary 5236496 май 22 17:57 hello_world
-rw-rw-r-- 1 lary lary 102 май 22 17:57 hello_world.d
drwxrwxr-x 2 lary lary 4096 май 22 17:57 incremental
drwxrwxr-x 2 lary lary 4096 май 22 17:57 native
我变得非常难过。难道我做错了什么?还是正常?显然,已经组装了一个模块,整个运行时都静态链接到该模块中。应该是这样吗?