ubuntu 中的单声道和非托管代码

2024-01-27

我使用的是单声道 2.10 在 Ubuntu 12 x64 上运行。 现在我需要知道如何使用非托管代码。

[DllImport("libc.so")]
public static extern int getpid ();

并且,在下一步中我有:

getpid();

我收到这个错误

$ MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono libc_test.exe
Mono: DllImport attempting to load: 'libc.so'.
Mono: DllImport loading library:     '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared     object file: No such file or directory'.
Mono: DllImport loading library:     '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library     '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared     object file: No such file or directory'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid     ELF header'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid     ELF header'.
Mono: DllImport loading: 'libc.so'.
Mono: DllImport error loading library '/usr/lib/x86_64-linux-gnu/libc.so: invalid     ELF header'.
Mono: DllImport unable to load library '/usr/lib/x86_64-linux-gnu/libc.so: invalid     ELF header'.
Mono: DllImport attempting to load: 'libc.so'.
Mono: DllImport loading library:     '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library     '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared     object file: No such file or directory'.
Mono: DllImport loading library:     '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library         '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared     object file: No such file or directory'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid     ELF header'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading: 'libc.so'.
Mono: DllImport error loading library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport unable to load library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Hello Linux!
Mono: DllImport attempting to load: 'libc.so'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared     object file: No such file or directory'.
Mono: DllImport loading library: '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so'.
Mono: DllImport error loading library '/home/ibaranov/Documents/MONO/libc_test/libc_test/bin/Debug/libc.so: cannot open shared object file: No such file or directory'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading location: 'libc.so'.
Mono: DllImport error loading library: '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport loading: 'libc.so'.
Mono: DllImport error loading library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.
Mono: DllImport unable to load library '/usr/lib/x86_64-linux-gnu/libc.so: invalid ELF header'.

Unhandled Exception: System.DllNotFoundException: libc.so
  at (wrapper managed-to-native) libc_test.LibC:getpid ()
  at libc_test.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: libc.so
  at (wrapper managed-to-native) libc_test.LibC:getpid ()
  at libc_test.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0 

我很长时间以来一直在尝试解决这个问题,但我所做的一切都对我没有帮助。 我用:

 dlopen("libc.so", RTLD_NOW);

也许我需要为 x64 编译 libc.so ?


它应该是

[DllImport("libc.so.6")]

or just

[DllImport("libc")]

“libc”是 /etc/mono/config 中的别名, 在 GNU/Linux 系统上: ... <dllmap dll="libc" target="libc.so.6" os="!windows"\> ...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu 中的单声道和非托管代码 的相关文章

  • 将指针传递给结构体数组的指针从 C# 到 C++

    我想将结构体数组的指针从 C 传递到 C 使用以下代码 我只获取 C 中的第一个元素 数组的第二个和第三个元素未传递 为什么 另外 尝试使用 StructureToPtr 但没有帮助 我做错了什么 C code struct structu
  • Linux中如何避免sleep调用因信号而中断?

    我在 Linux 中使用实时信号来通知串行端口中新数据的到达 不幸的是 这会导致睡眠呼叫在有信号时被中断 有人知道避免这种行为的方法吗 我尝试使用常规信号 SIGUSR1 但我不断得到相同的行为 来自 nanosleep 联机帮助页 nan
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • Mono 3.0、Ubuntu 12.10、Nginx 和 ServiceStack

    根据 ServiceStack 网站的说法 使用 Mono 在 Linux 上启动和运行 ServiceStack 应该很容易 我已经在系统 Ubuntu 12 10 上安装了 nginx mono 3 0 和 fastcgi 我用过thi
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • Python glob,操作系统,相对路径,将文件名放入列表中[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个目录中所有文件的列表 其中文件名以 root 结尾 在阅读了论坛中的一些文章后 我尝试使用 glob 和 os listdir 的基本策略 但我都遇到了麻烦 首先 当我使用 import glo
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何在 Linux 和 C 中使用文件作为互斥体?

    我有不同的进程同时访问 Linux 中的命名管道 并且我想让此访问互斥 我知道可以使用放置在共享内存区域中的互斥体来实现这一点 但作为一种家庭作业 我有一些限制 于是 我想到的是对文件使用锁定原语来实现互斥 我做了一些尝试 但无法使其发挥作
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 来自守护程序的错误响应:加入会话密钥环:创建会话密钥:超出磁盘配额

    我尝试在我的服务器上安装 docker 使用本教程 https docs docker com install linux docker ce ubuntu 我想远程运行 docker 镜像并使用 portainer Web 界面来管理一切
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com

随机推荐

  • 经典 asp - 仅接收肥皂响应的一部分

    我试图从经典 asp 调用肥皂请求 它将在稍后更新 但现在它仍然是经典 asp 但我只得到一半的响应 当我在 SoapUI 中使用请求字符串时 我得到了我正在寻找的响应 但在 asp 中我只收到了部分响应 ASP 请求 Set oXmlHT
  • scala:重写构造函数的隐式参数

    我有一个类 它采用隐式参数 该参数由类内部方法调用的函数使用 我希望能够覆盖该隐式参数 或者从其源复制隐式参数 举个例子 def someMethod implicit p List Int uses p class A implicit
  • 如何在市场上发布应用程序的两个版本?

    我想将我的应用程序的两个版本添加到 Android 市场 一种只需几美分 另一种是带有广告的免费版本 这是一种非常常见的做法 我目前正在将 AdMod 构建到我的应用程序中 看来我必须更改相当多的文件 因此最好为此制作一个单独的应用程序版本
  • 如何提高自编码器的准确率?

    我有一个自动编码器 我使用不同的解决方案检查了模型的准确性 例如更改转换层的数量并增加它们 添加或删除批量归一化 更改激活函数 但所有这些解决方案的准确性都是相似的 并且不一样有任何奇怪的改进 我很困惑 因为我认为这些不同解决方案的准确度应
  • JavaScript 中重复元素的独特排列

    假设我们有元素 0 和 1 它们可以出现多次 就像00 00 11 00 00 11 11 or 01 11 为了更好的可读性分成 2 组 我已经有一个函数来生成所有独特的排列 class UniqueElement constructor
  • 如何在同一行上同时打印多个内容(固定文本和/或变量值)?

    我有一些代码 例如 score 100 name Alice print Total score for s is s name score 我想要打印出来Total score for Alice is 100 但我得到的是Total s
  • Android 从 Activity 传递和检索额外内容到 Fragment

    我有一个活动 用户按下按钮 然后发送到片段 但我希望传递一个额外的片段以供使用 活动A 按钮在哪里 public OnClickListener publish new OnClickListener Override public voi
  • 如何从 MySql 服务器到 Android 应用程序?

    我有一个 MySql 数据库 里面有一些体育比赛结果 我想写一个Android应用程序来在手机上显示这些数据 我在网上搜索过这个问题 我认为MySql数据库和Android应用程序之间不可能有直接连接 这是正确的吗 所以我的问题如下 我怎样
  • redux-observable Promise 在单元测试中没有得到解决

    我正在尝试测试这部史诗https github com zarcode unsplashapp blob master src epics photos js https github com zarcode unsplashapp blo
  • Apache Spark - Spark 中的内部作业调度程序如何定义什么是用户,什么是池

    我很抱歉在这里说得有点笼统 但我对 Spark 内部的作业调度如何工作有点困惑 从文档中here https spark apache org docs latest job scheduling html scheduling withi
  • 在 os.walk() for 循环中使用 os.remove() 返回 FileNotFoundError

    我在 Anaconda 命令提示符中使用 Python 3 6 4 我有一个使用的函数os walk 循环遍历根目录中的所有可用文件 我的代码是 def apply to files pattern base regex re compil
  • 防止 pydub 打开控制台窗口

    有没有办法阻止 pydub 在使用 ffmpeg 在 Windows 上 时打开控制台窗口 每次启动 ffmpeg 将 mp3 文件转换为 wav 时 它都会短暂打开一个控制台窗口 该窗口会在处理完成后自动关闭 但可能会造成干扰 我使用的解
  • 模板参数内的括号,例如std::function

    我正在读关于std function在第 3 部分中 关于 C 回调的 长 答案https stackoverflow com a 28689902 3832877 https stackoverflow com a 28689902 38
  • 任何人都可以获得任何 C# 代码来解析 robots.txt 并根据它评估 URL

    简短的问题 有没有人有任何 C 代码来解析 robots txt 然后根据它评估 URL 看看它们是否会被排除 长问题 我一直在为尚未发布到谷歌的新网站创建站点地图 站点地图有两种模式 用户模式 如传统站点地图 和 管理 模式 管理模式将显
  • 如何使用QueryParser进行Lucene范围查询(IntPoint/LongPoint)

    我真正喜欢 Lucene 的一件事是查询语言 我 应用程序用户可以在其中编写动态查询 我通过解析这些查询 QueryParser parser new QueryParser indexWriter getAnalyzer Query qu
  • 如何分别变换形状的每一面?

    如何创建一个 CSS 形状 其中每一面都单独变换 类似于下图中的形状 只使用 CSS 而不使用图像可以吗 我认为 CSS 中没有任何方法可以单独选择和变换每一面 但您可以通过使用透视变换 纯 CSS 来实现有问题的形状 沿 X 轴和 Y 轴
  • 预加载 HTML 中的图像

    我想预加载这 4 张图像 我试过这个 img src img 1 jpg style display none img src img 1a jpg style display none img src img 1b jpg style d
  • Flutter - 根据登录状态使用不同的路由启动应用程序

    我正在寻找一种根据登录状态在应用程序启动时显示不同屏幕的方法 例如 我定义了以下路由 home login 设置 当然 我会检查用户是否已经在main 方法 然后设置initialRoute我的 MaterialApp 到 login 或
  • 使用 switch 语句可以解决的最大情况数

    这是出于好奇 单个开关盒最多可以有多少个switch包括default 案件 我的意思是这样的 switch ch case 1 some statement break case 2 some statement break case n
  • ubuntu 中的单声道和非托管代码

    我使用的是单声道 2 10 在 Ubuntu 12 x64 上运行 现在我需要知道如何使用非托管代码 DllImport libc so public static extern int getpid 并且 在下一步中我有 getpid 我