我想知道我是否可以用C编程语言编写一个可执行的程序,尽管不使用单个库调用,例如甚至没有exit()?如果是这样,它显然根本不依赖于库(libc、ld-linux)。 最佳答案 我怀疑你可以写这样的东西,但最后需要有一个无限循环,因为你不能要求操作系统退出你的进程。你不能做任何有用的事情。我们从编译一个ELF程序开始,查看ELF规范并一起制作程序头、程序段和程序所需的其他部分。内核将加载您的代码并跳转到某个初始地址。你可以在那里放置一个无限循环。但是如果不了解一些汇编程序,无论如何从一开始就是没有希望的。start.Sglibc使用的
我想知道我是否可以用C编程语言编写一个可执行的程序,尽管不使用单个库调用,例如甚至没有exit()?如果是这样,它显然根本不依赖于库(libc、ld-linux)。 最佳答案 我怀疑你可以写这样的东西,但最后需要有一个无限循环,因为你不能要求操作系统退出你的进程。你不能做任何有用的事情。我们从编译一个ELF程序开始,查看ELF规范并一起制作程序头、程序段和程序所需的其他部分。内核将加载您的代码并跳转到某个初始地址。你可以在那里放置一个无限循环。但是如果不了解一些汇编程序,无论如何从一开始就是没有希望的。start.Sglibc使用的
gcc4.5.1Fedora14Linux我有这个由以前的程序员构建的静态库。但是,他已经离开公司,我们没有源代码。我们只有头文件*.h和libnet.a静态库。当我尝试将其与我们的应用程序链接时。我收到一个不兼容的链接器错误。我认为问题是静态库是在32位机器上构建的。我正在尝试使用64位机器进行链接。我可以使用cflag-m32编译我的应用程序。但是,我只想知道如果静态库是在32位或64位模式下构建的,是否有任何命令会给我?非常感谢您的任何建议, 最佳答案 .a存档只是对象的集合,所以为什么不呢:arxlibnet.afileso
gcc4.5.1Fedora14Linux我有这个由以前的程序员构建的静态库。但是,他已经离开公司,我们没有源代码。我们只有头文件*.h和libnet.a静态库。当我尝试将其与我们的应用程序链接时。我收到一个不兼容的链接器错误。我认为问题是静态库是在32位机器上构建的。我正在尝试使用64位机器进行链接。我可以使用cflag-m32编译我的应用程序。但是,我只想知道如果静态库是在32位或64位模式下构建的,是否有任何命令会给我?非常感谢您的任何建议, 最佳答案 .a存档只是对象的集合,所以为什么不呢:arxlibnet.afileso
我正在努力保护我的应用程序免受缓冲区溢出攻击。除其他事项外,我正在使用不可执行的堆栈并将我的二进制文件与noexecstack标志链接(通过将-Wl,-z,noexecstack传递给gcc)。一切似乎都很好-readelf确认PT_GNU_STACK指定了正确的权限:$readelf-ltarget|grep-A1GNU_STACKGNU_STACK0x00000000000000000x00000000000000000x00000000000000000x00000000000000000x0000000000000000RW10execstack也是如此:$execstack-
我正在努力保护我的应用程序免受缓冲区溢出攻击。除其他事项外,我正在使用不可执行的堆栈并将我的二进制文件与noexecstack标志链接(通过将-Wl,-z,noexecstack传递给gcc)。一切似乎都很好-readelf确认PT_GNU_STACK指定了正确的权限:$readelf-ltarget|grep-A1GNU_STACKGNU_STACK0x00000000000000000x00000000000000000x00000000000000000x00000000000000000x0000000000000000RW10execstack也是如此:$execstack-
我见过很多控制台应用程序(在Windows上运行)中都有一些对话框和小部件。比如说:还有很多。现在我的问题是:是否有用于在Win32控制台应用程序中创建对话框和小部件的库(C语言)?更新:看到pdcurses,但它缺少真正的ncurses库中的库,如menu.h和form.h。那么ss还有其他好用的吗?非常感谢!:) 最佳答案 您可以使用ncurses,请查看stackoverflow.com上的以下问题:Isncursesavailableforwindows?还有PDCurses支持Win32也可以用老库Turbovision,
我见过很多控制台应用程序(在Windows上运行)中都有一些对话框和小部件。比如说:还有很多。现在我的问题是:是否有用于在Win32控制台应用程序中创建对话框和小部件的库(C语言)?更新:看到pdcurses,但它缺少真正的ncurses库中的库,如menu.h和form.h。那么ss还有其他好用的吗?非常感谢!:) 最佳答案 您可以使用ncurses,请查看stackoverflow.com上的以下问题:Isncursesavailableforwindows?还有PDCurses支持Win32也可以用老库Turbovision,
比如我需要生成一个共享库libXXX.so。生成它的常用方法是什么?只使用-fPIC-shared吗?我需要创建一个到这个库的软链接(softlink)吗?我的意思是使用ln-s。如果我更新共享库会怎样,即。从libXXX.so.1.2.3到libXXX.so.1.2.4,我的项目怎么知道共享库更新了?我需要重新编译整个项目吗?在Makefile中管理共享库的常用方法是什么?我完全不明白这些问题。请帮我一个忙:-) 最佳答案 您提出问题的主题非常广泛。您的大部分问题取决于您的环境,是否创建软链接(softlink)取决于您将库保存在
比如我需要生成一个共享库libXXX.so。生成它的常用方法是什么?只使用-fPIC-shared吗?我需要创建一个到这个库的软链接(softlink)吗?我的意思是使用ln-s。如果我更新共享库会怎样,即。从libXXX.so.1.2.3到libXXX.so.1.2.4,我的项目怎么知道共享库更新了?我需要重新编译整个项目吗?在Makefile中管理共享库的常用方法是什么?我完全不明白这些问题。请帮我一个忙:-) 最佳答案 您提出问题的主题非常广泛。您的大部分问题取决于您的环境,是否创建软链接(softlink)取决于您将库保存在