0

问题的简短版本:我如何开始使用 C 编程?请注意,我并不是要学习 C 语言的教程(我可以很容易地学习)。我需要设置环境(我希望我清楚地问这个问题)。这就是我的意思:

对于我的数学论文,我需要在 Gentoo Linux 上用 C 语言编写一个程序,使用一个名为CVODE/SUNDIALS的库。我的部门(似乎)没有人可以帮助我设置这个 - 我的教授已经将计算机工作 100% 留给了我,因为我有一些编程背景,而且他是一个数学极客。但我的经验是使用脚本语言(想想 VBA),而不是完整的、强大的编程语言,你必须链接编译器和库等,比如 C。

Linux 集群上没有开发环境——或者至少不是那么友好,并且有一个调试器——我发现了。所以,我需要弄清楚如何在我的 PC(Win 7 x64,几乎没有成本)上使用 CVODE 库设置 C 编程环境。

我找到了很多关于用 C 编程的教程。我查找了 Eclipse,我有一点经验,作为一个开发环境,但是它的说明说你也需要安装一个编译器。

我想有人用我能理解的简单语言告诉我(这可能是这个问题中最困难的部分)我需要什么和做什么的大图景(甚至可能链接到我可以找到的地方我需要什么)用CVODE建立一个 C 环境。如果资料是Windows/Gentoo Linux跨平台,那就更好了。

谢谢你。

PS 我确实搜索了该站点,并看到了很多“我如何设置”问题,但没有 C 问题。因为我知道有人会为此对我大喊大叫。此外,我不想讨论是否使用 C#、C++、Java 等。这只会使问题复杂化——我需要完成这件事。

编辑:自从这个问题以来,我学到了更多东西,现在意识到我遗漏了问题的一个关键部分。学校的 CVODE 库和 Linux 集群使用 MPI(并行编程),这在普通的普通 PC 上是不可用的。所以所有的开发都必须直接在集群上完成。

4

4 回答 4

2

你说你想在Gentoo Linux上写c代码,据我了解你不熟悉Linux?在这种情况下,最好的选择是:

  1. 在您的 Windows 机器上安装 virtualbox (https://www.virtualbox.org/),它是一个免费软件,可让您在桌面上模拟 Linux 等其他系统...

  2. 在virtualbox上安装Gentoo linux,网上有很多教程,比如这个视频:http ://www.youtube.com/watch?v=DUf_1​​wAPeyA

  3. 当您在 virtualbox 上安装 Gentoo Linux 时,您拥有开发 C 所需的一切(gcc 编译器、gdb 调试器......)

  4. 现在您可以下载您的库并解压缩它

  5. 一般来说,所有(好的)Linux 库都附带一个'README'文件,其中包含安装库的所有说明。我认为你需要这样做:

    ./configure --prefix=/DIRECTORY_YOU_WANT_TO_INSTALL_THE_LIBRARY
    
    make
    
    make install
    
  6. 您现在可以使用 C 和您的新库,如下所示:假设您创建了一个新文件 test_lib_ CVODE.c,您可以像这样编译它:

    gcc -Wall test_lib_ CVODE.c -o test_lib_ CVODE -lcvode
    

我假设安装的库名为 libcvode.so

如果您有任何问题,您可以随时在这里获得帮助。

问候。

于 2012-07-29T20:37:04.000 回答
2

Linux:简单的方法是安装 gcc 或 g++。您可以在纯文本编辑器(nano、vim、gedit、kwrite 等)中编写代码将文件保存为 .c 或 .cpp 扩展名并输入终端

gcc filename.c

或者

g++ filename.cpp
于 2012-07-29T19:31:16.363 回答
0

我认为你应该在 Linux 中使用 Code::Block,它与 Window 的 Code::Block 非常相似,并且非常容易调试和其他事情。

于 2012-07-29T20:31:24.203 回答
0

这些都是有用的答案。我尝试至少一点点地追求他们中的每一个。但是,唯一合理的解决方案似乎是在终端窗口上使用emacs。这是因为我正在使用 MPI——是的,我知道我没有在 OP 中提到这一点——这只能在集群上完成。

我是这个环境的新手,不知道 MPI 或它会对我的开发尝试产生的影响。

如果我能用 Cygwin 搞清楚 X/Windows,我相信我能做得比这更好。但我离那还有很长的路要走。

感谢大家的努力,很抱歉我不能真正授予最佳答案(我猜)。

于 2012-08-18T01:56:38.360 回答