我想问一些关于在Unix上编写C ++而不是Windows的具体问题。
在Windows中,为了调用本地操作系统函数,您通常会链接到一个.dll或包含windows.h。同样,您如何引用Unix中的底层操作系统函数?
是否有一个在Unix内的所有底层操作系统function的参考指南? (这样可以看到有什么function可用)。
什么是“包含”boost库的最佳方法? 要使用像eclipse C / C ++版本那样的IDE,并且像在Windows上一样包含boost?
谢谢
在Unix系统上,Unix函数通常与libc一起在C标准库中。 编译器自动将它链接到你的可执行文件,通常作为一个“共享库”,这有点像Windows DLL,但也不完全一样。
至于包括头…大多数Unix系统带有命令行man
命令,它允许你拉起关于各种调用的手册页。 这些手册页通常提到您需要使用特定功能的标题。
有一些特殊的功能是作为系统调用来实现的。 对于普通的C程序员来说,特定函数是一个系统调用的事实是一个实现细节。 但是,通常值得注意的是这些功能是什么,因为它们可以帮助您了解操作系统为您所做的工作,以及您正在使用的库所做的工作。 在Windows上这个区别往往很难确定。
大多数Unix程序员仍然使用make
和命令行工具。 这意味着没有IDE设置或任何东西。 你将不得不弄清楚通过编译器的标志。 这通常不是那么困难。
另外,大多数Unix系统不会在整个文件系统中安装软件。 如果它是包含已安装软件包的包含文件,则它将位于/ usr / include目录中。 这意味着你将不必神奇地神圣的Boost包含文件的位置。 他们将一起在/ usr / include中。
虽然你可能需要弄清楚你需要哪些Boost库(比如-lboost_filesystem
),但是所有的Boost库都将在/usr/lib
或者/usr/lib64
与其他所有库一起使用,所以你不需要找出他们在哪里。
1)没有单个头文件。 你不直接调用系统调用,而是通常通过像fopen这样的标准c库来间接地调用(在fopen的情况下,你也可以调用打开的底层函数,但是这使得程序不能移植)。 提到你指的是哪个系统调用会有帮助
2)这听起来像是你在Unix平台上的一个新开发。 我强烈推荐Richard Stevens的“UNIX环境下的高级编程”。
3)你应该熟悉make实用程序。 通常由您的IDE隐藏在窗口上的东西。 另外boost库也带有示例程序。
没有一个头可以包含访问所有* nix函数; 请参阅第2,3或3部分的相应手册页以获取相关功能,以便确定您需要哪些标题和库。
每个* nix都倾向于遵循不同程度的POSIX或SUS 。
… 什么?