macos - OSX 如何使用位于当前工作目录或子目录 C/C++ 中的 GCC/G++ 编译框架

标签 macos gcc frameworks g++ working-directory

希望这是一件好事。但是由于我前一阵子费了好大劲才弄明白,而且还没有在堆栈溢出中看到它,所以我想我应该同时发布问题和答案。

此问题/解决方案适用于 OSX 用户使用 GCC 或 G++ 编译框架,而无需在其系统上的以下路径中安装框架

/System/Library/Frameworks/

最佳答案

此代码将从问题中列出的目录编译一个框架。 (之前回答过)How to compile a C program that uses a Framework without using Xcode

gcc ...  -framework frameworkName a.c b.c ... -o out

此代码将从自定义目录编译框架。 (据我所知,之前没有回答过)。以下目录/文件的示例。

/alt/path/to/framework/frameworkName.framework

.

FLAGS+="-F /alt/path/to/framework/ -framework frameworkName rpath /alt/path/to/framework/"
gcc ...  $FLAGS a.c b.c ... -o out

这将是工作目录的子目录的示例。我知道 ./通常是惯例,但我不记得这对我是否有用。

FLAGS+="-F $(PWD)/alt/path/to/framework/ -framework frameworkName rpath $(PWD)/alt/path/to/framework/"
gcc ...  $FLAGS a.c b.c ... -o out 

这是/System/Library/Frameworks/路径和同一编译中的路径 $(PWD)/alt/path/to/framework/的组合。

FLAGS+="-F $(PWD)/alt/path/to/framework/ -framework frameworkName2 rpath $(PWD)/alt/path/to/framework/"
gcc ...  -framework frameworkName1 $FLAGS a.c b.c ... -o out

如果有人确实在堆栈溢出中找到了这个答案/问题,我会立即删除我的“问题”。这样做的目的是为我以外的人提供框架的可移植性。如何?因为如果框架在工作目录中,它可以很容易地随文件/文件夹本身移动。这显然不是人们正在尝试的常见事情,但也许它会让某人开心。

关于macos - OSX 如何使用位于当前工作目录或子目录 C/C++ 中的 GCC/G++ 编译框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709344/

相关文章:

java - 隐藏 JFrame 并通过单击停靠图标再次显示它

macos - Yosemite curl 错误

gcc - ELF 文件中的 VirtualAddress、LoadAddress 和 PhysicalAddress?

php - Yii 框架将提交的文件存储/保存到图像文件夹

ios - 迪尔德 : Symbol not found: _OBJC_CLASS_$_NSNetService Error

Python pygame mac 导入

macos - 在 MAC OS X 上编译 Httrack

C: glib.h `pkg-config --cflags --libs glib-2.0` valgrind 仍然可达

c++ - 声明变量时逗号分隔的作用

objective-c - Xcode 验证错误 : non-public selectors