【发布时间】:2014-04-17 06:19:10
【问题描述】:
我在 OS X 10.9.2 (Mavericks) 上编写了一段 C 代码,并从终端使用 gcc 编译器通过链接所需的库(如 -lm -lfftw3 等)对其进行编译。它在我的计算机和另一台运行相同操作系统(也具有所需的库)的计算机上运行良好,但是当我尝试在另一台运行 OS X 10.8(Mountain Lion)的计算机上运行可执行文件时,它不起作用。我没有尝试在运行 OS X 10.8 (Mountain Lion) 的计算机上重新编译,因为它没有安装所需的库。如何仅使用计算机上的终端(运行 OS X 10.9.2 (Mavericks))创建新的可执行文件,以便它可以在可能永远不会安装所需库的任何以前版本的操作系统上运行?
谢谢。
【问题讨论】:
-
静态链接它,因此任何必要的外部库都成为二进制文件的一部分。
-
您必须确保库在另一台计算机上 - 从您的问题来看,我会说这不是 OSX 版本的问题
-
@Marc B:你能给我举个例子说明我应该怎么做吗(静态链接)?谢谢
-
gcc -static 创建静态二进制文件。它可能不起作用,有时您实际上并没有获得库的静态版本。
标签: c gcc terminal osx-mountain-lion osx-mavericks