- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在转换到 OS X Mavericks 和 XCode 5.0.1 后,我无法再将已编译的 C 文件(从 gcc 输出)优雅地链接到 C++ 项目(从 g++ 输出)。
从我的 makefile 生成的有问题的命令对是:
gcc `pkg-config --cflags glib-2.0` -g -Wall -O3 `pkg-config --cflags flann` -c -o vec.o vec.c
g++ `pkg-config --cflags glib-2.0` -g -Wall -O3 -stdlib=libstdc++ -lstdc++ layoutquality.cpp vec.o `pkg-config --libs glib-2.0` -L/usr/local/Cellar/flann/1.8.4/lib -lflann -o layoutquality
链接器向其提示:
Undefined symbols for architecture x86_64: "load_dmat(char const*)", referenced from: _main in layoutquality-I8HOqy.o ld: symbol(s) not found for architecture x86_64
load_dmat
只是文件 vec.c 中的一个函数。如果我在第一行中将 gcc
替换为 g++
,那么一切都可以正常编译和链接,但是 clang 说:
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
是否有一种无害的、未弃用的方式来编译和链接这些内容?在我升级到 OS X Mavericks 和新的命令行工具之前,将 g++
与来自 gcc
的目标文件链接在一起工作正常。如果能深入了解发生了什么变化以及如何前进,那将是非常好的,谢谢。
最佳答案
在“vec.c”之前添加一个“-x c”(不带引号)应该可以解决这个问题。
如果您在同一行中编译多个 .c/.cpp 文件,您可以在每个 C 或 C++ 文件名列表之前使用“-x c”或“-x c++”来适本地切换上下文。例如:
g++ -x c alpha.c beta.c -x c++ gamma.cpp
关于c++ - 在 OS X Mavericks 中从 C++ 链接 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19644816/
我从 git 克隆: git clone git://git.apache.org/mesos.git 并且还做了 brew install autoconf automake libtool 然后尝
我已经在 Mavericks 上安装了 XQuartz 2.7.5。在那之后,我用 mplayer 播放的视频似乎加载到了一个单独的窗口中,所有白色都停留在播放音频上。我通过使用 launchctl
最近,我将我的 OS X 更新到了 10.9( Mavericks );不幸的是,尽管我将 Xcode 命令行更新为 OS X Mavericks 的 5.1.1,但 gfortran 停止工作。前段
尝试使用 Homebrew 软件在 mac os x mavericks 上安装 zlib-devel 不起作用: brew install zlib-devel Error: No availabl
更新:我看到有人尝试将 PyCharm 与 SSHFS 结合使用,而 JetBrains 说:“不”。也许这行不通? 我正在尝试在我工作的客户办公室的 SSHFS 安装磁盘上使用 WebStorm —
给定以下程序: #import int main(int argc, char *argv[]) { @autoreleasepool { NSDateFormatter *
我的快速查看生成器以前可以正常工作,但现在坏了。 这是一个错误还是我做错了什么? 这是我的代码: OSStatus GeneratePreviewForURL(void *thisInterface,
我很难让 PhpMyAdmin 在 Mavericks 上工作。 我通过取消注释/etc/apache2/httpd.conf 中的 LoadModule 指令在 apache 中启用了 PHP,我已
我知道还为时过早,但我已经升级到 OSX mavericks,我无法使用 Homebrew 安装 opencv。 ==> Installing dependencies for opencv:
我正在使用 vagrant Geodjango box 并且端口转发对我不起作用。 在盒子上,我运行了: python manage.py runserver 0.0.0.0:8000 但是 http
我一直在用 homebrew在 OSX Mavericks 上有一段时间了,但是我现在正在处理需要将文件添加到那些相同安装程序的文件夹中。 这是输入时的问题: $ brew info ant 我收到
我在前一周升级到 Mavericks,从那以后开始遇到 Homebrew 软件问题。 'brew doctor' 报告没有问题,但我目前正在尝试安装 Apache Thrift,但它失败了。有什么建议
我找不到任何关于此的信息,而且我从未对推送通知做过任何事情(但我模糊地知道它们是如何工作的)。在Mavericks中,既然OS X可以接收来自网站等各种事物的推送通知,那么iPhone模拟器可以接收推
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我有一个包含以下文本的 lldb 命令文件: settings set -- auto-confirm true breakpoint set --name main proc
我刚刚更新到 OS X Mavericks 中的命令行工具的最新版本,现在在编译我的(以前工作的)代码时,它会抛出以下错误 > clang: warning: no such sysroot dire
我正在尝试使用此脚本选择“Soundflower (2ch)”作为我的音频输出: tell application "System Preferences" activate set
在早期版本的 OS X 上,Applescript 如下: tell application "System Events" to tell process "Google Chrome" get p
我正在尝试在Genymotion中安装Google Play。但是,当我将zip放到仿真器中时,它会将文件保存在/sd.../中,而不是将其闪烁。我如何获得zip闪存? 最佳答案 如果您使用的是Mac
我的 Java 应用程序有一个构建在另一台服务器计算机上的应用程序。该服务器机器现已升级为 Mavericks + xcode 5.1。早些时候,我遇到了未使用 Mavericks + xcode 5
我是一名优秀的程序员,十分优秀!