【问题标题】:Dealing with static libraries when porting C code from one operating system to another将 C 代码从一个操作系统移植到另一个操作系统时处理静态库
【发布时间】:2013-09-12 18:30:50
【问题描述】:

我一直在 Windows 机器上编写一些 C 代码,现在我正在将其转移到我没有完全权限的 Linux 计算机上。在我的代码中,我链接到几个静态库。

这些库需要为 Linux 计算机重新制作是否正确?

有问题的图书馆是 GSL-1.13 科学图书馆

附带问题,是否有人为 Linux 提供了上述预编译版本?

我尝试在Linux机器上使用automake编译源码,但是好像没有生成makefile,也没有输出错误。

谢谢

【问题讨论】:

  • 你到底做了什么,目录列表,什么 Linux 机器,尝试使用 VM 编译库 X? – 这缺少信息...
  • 根据 Linux 发行版的不同,GSL(或至少其他一些易于打包的解决方案)可能会提供预制的软件包。此外,C 运行时可能因系统而异,因此您的静态包(很可能使用 C 运行时)需要按系统编译。总而言之,虽然这个问题并没有真正缺少让某人提供规定性响应的必要信息,但您最好添加编译器、系统和其他基于环境的信息.

标签: c linux windows compilation


【解决方案1】:

是的,当您从 Windows 切换到 GNU/Linux 时,您确实需要再次编译任何库。

至于如何做到这一点,您不需要 automake 来构建 GSL。您应该仔细阅读 tarball 中的 INSTALL 文件(文件 gsl-1.16.tar.gz)。简而言之,您运行命令

$ ./configure
$ make

在您从 tarball 解压的目录中。

【讨论】:

  • 如果您没有root权限,我建议您改为./configure --prefix=$HOME/soft(并将$HOME/soft/bin添加到您的PATH)。
猜你喜欢
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 2016-02-16
  • 2011-03-26
  • 2019-06-25
相关资源
最近更新 更多