gen-sorted.awk 错误

交叉编译glibc-2.9时出现如下错误提示:

 

mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...

 

解决一(优先):

http://chinajz.spaces.live.com/blog/cns!ead556f11efe5c17!430.entry

 

=======================================

引用如下:

首先将debian系统中的awk由mawk变为gawk,这是由于两者在处理上有些语法差别:
apt-get install gawk
mv /usr/bin/{mawk,mawk.orig}
cp /usr/bin/{gawk,mawk}

=======================================

 

解决二(来自网络):

http://sourceware.org/ml/crossgcc/2007-07/msg00029.html

 

此方案在后续使用mawk编译时仍会碰到问题。

 

=======================================

引用如下:

This is a simple patch when you still want to be using mawk.
Check the line numbers, did it for 2.6 and not 2.5

original patch glibc-2.6-mawk_fix-1.patch by Jim Gifford
<jim@linuxfromscratch.org>

Mark


diff -Naur glibc-2.6.orig/scripts/gen-sorted.awk
glibc-2.6/scripts/gen-sorted.awk
--- glibc-2.6.orig/scripts/gen-sorted.awk 2006-02-28
07:05:57.000000000 +0000
+++ glibc-2.6/scripts/gen-sorted.awk 2007-07-20 21:03:50.000000000 +0000
@@ -16,7 +16,7 @@
{
subdir = type = FILENAME;
sub(/^.*///, "", type);
- sub(///[^/]+$/, "", subdir);
+ sub(///[^//]+$/, "", subdir);

sub(/^.*///, "", subdir);
thisdir = "";
}
@@ -56,13 +56,13 @@
# The Subdirs file comes from an add-on that should have the
subdirectory.
dir = FILENAME;
do
- sub(///[^/]+$/, "", dir);
+ sub(///[^//]+$/, "", dir);

while (dir !~ ///sysdeps$/);
sub(///sysdeps$/, "", dir);
if (system("test -d " dir "/" thisdir) == 0)
dir = dir "/" thisdir;
else {
- sub(///[^/]+$/, "", dir);
+ sub(///[^//]+$/, "", dir);

if (system("test -d " dir "/" thisdir) == 0)
dir = dir "/" thisdir;
else {

=======================================

### 如何正确对浮点数进行排序 对于给定的数据 `8.77451`, `-2.855445856`, `-2.794053913`, 和 `-13.79172`,可以采用 Python 的内置函数来完成排序操作。Python 提供了一个非常强大的工具——`sorted()` 函数以及列表对象的 `.sort()` 方法,它们都可以用来对数值型数据(包括浮点数)进行升序或降序排列。 以下是具体的实现方式: #### 升序排序 为了按从小到大的顺序对这些浮点数进行排序,可以直接调用 `sorted()` 或者使用列表自带的方法 `.sort()`. 这里我们还应用了四舍五入规则以确保最终输出的结果保留两位小数[^4]。 ```python data = [8.77451, -2.855445856, -2.794053913, -13.79172] # 对原始数据进行复制并排序 sorted_data_asc = sorted(data) # 将结果中的每一个元素都转换成只保留两位小数的形式 rounded_sorted_data_asc = [round(num, 2) for num in sorted_data_asc] print(rounded_sorted_data_asc) ``` 执行上述代码后得到的结果将是:`[-13.79, -2.86, -2.79, 8.77]`. #### 降序排序 如果希望获得从大到小的排序,则可以在 `sorted()` 中指定参数 `reverse=True`: ```python sorted_data_desc = sorted(data, reverse=True) rounded_sorted_data_desc = [round(num, 2) for num in sorted_data_desc] print(rounded_sorted_data_desc) ``` 这将返回 `[8.77, -2.79, -2.86, -13.79]`. 需要注意的是,在比较两个浮点数大小时可能会遇到精度问题,这是因为计算机内部存储浮点数的方式决定的。然而,在大多数实际应用场景下,默认的行为已经足够精确[^2]. 另外值得注意的一点是关于有效浮点数定义的理解。虽然某些形式看起来像是不符合常规书写习惯(比如缺少前导数字或者指数部分),但在特定上下文中仍然可能被认为是有效的表达式[^3]. 因此,在编写程序处理这类输入之前最好确认清楚具体需求和约束条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值