【发布时间】:2021-09-10 06:16:42
【问题描述】:
我是 Linux 网络核心的新手,我有一个问题。我安装了 .net core 5 并编写了名为“hello”的 hello world 应用程序。之后,我转到项目 bin 目录并运行我的应用程序:
dotnet hello.dll
一切都好。但我也在 bin 目录中看到“hello”(共享库)文件。我可以在终端中运行它:
./hello
所有作品... 但是当我将文件复制到另一个位置(远离项目目录)时,我无法像这样运行我的应用程序:./hello 我在终端中收到消息“分段错误(核心转储)”。
请告诉我,为什么在复制文件后,命令“./hello”不起作用(但 dotnet hello.dll 起作用)。
Ubuntu 20.04
.NET SDK 已安装:5.0.301
.NET 运行时安装:5.0.7
更新 项目地点:
/RiderProjects/RabbitMq-example/RabbitMq-example/bin/Debug/net5.0
我只将 net5.0 文件夹复制到:
/RiderProjects/RMQ/net5.0
我得到分段错误。
如果我复制完整的 bin 文件夹(如:
/RiderProjects/RMQ/bin/Debug/net5.0
一切都好。
步骤:
- 创建文件夹(例如 HelloApp)
- 在文件夹中,打开终端并使用 dotnet new console
- 项目创建后,在此文件夹中使用dotnet publish(构建操作后会创建bin文件夹) (按当前步骤,我有 RiderProjects/HelloApp/bin/Debug/net5.0/publish)
- 将 publish/ 文件夹(包含文件)复制到另一个位置(在我的情况下,它是 RiderProjects/发布)
- 发布文件夹中的 dotnet HelloApp.dll 工作正常,但 ./HelloApp 不起作用
【问题讨论】:
-
原始文件夹(或相关文件夹)中是否还有其他dll文件?你是复制到同一个驱动器吗?你用什么命令来复制文件?复制的 dll 文件大小是否与原始文件完全相同?分段错误通常是由于对象超出了分配给应用程序的内存。
-
存在已知错误 (bugs.launchpad.net/ubuntu/+source/python-apt/+bug/1907676) 该错误已在 20.04.2.0 中修复。
-
你在复制前运行
./hello,但在复制后运行./hello.sh,为什么? -
@LeiYang 对不起,拼写错误。我修好了。
-
@jdweng 我用 CTRL+C 复制它,然后通过 ubuntu 的用户界面用 CTRL+V 粘贴。是的,复制到同一个驱动器并且文件是原始大小。