⑴ mac 下vscode 代码补全不提示,感觉好像是被选默认中了之后,就不提示的样子
安装好官方的C/C++插件还不够,需要解决头文件路径的问题,如果头文件在专workspace文件夹下,鼠标点一下波浪属线提示错误的头文件会有小灯泡,点小灯泡选第一项,vscode会自动将该头文件路径添加到c_cpp_propeties.json文件中。若果头文件是系统的,或者keil等IDE的,就需要编辑c_cpp_propeties.json手动添加(windows下"X:/Program Files/xxx",斜杠和linux一样)。编辑好c_cpp_propeties.json结构体成员和函数参数应该都没有问题了。已知的问题,我打开了一个keil工程文件夹,头文件路径都编辑对了没有错误,但是在某些line没有智能提示,其他地方一切正常。怎么弄都没用,不知道是bug还是哪里还没配置正确。这个bug我已经提交给官方了,相信以后的版本会修复这个问题。
⑵ 如何在mac系统上使用opencv for android
一、安装OpenCV for MAC 1. 首先下载opencv for mac安装源文件,解压缩2. 安装cmake程序。下载cmake的dmg文件安装即可。3. 通过终端进入存放解压后的opencv文件夹,编译安装opencv,使用命令如下: >sudo cmake -G "Unix Makefiles" >sudo make -j8 >sudo make install 4. 经过步骤3则OpenCV已经被Compile完成,并且相应的lib文件存放在“/usr/local/lib”文件夹,h文件存放在“/usr/local/include”。 至此,opencv for Mac 安装完毕。 二、在MAC下使用OpenCV1. 使用终端编译。新建DisplayImage.cpp文件,代码如下#include <cv.h>#include <highgui.h>using namespace cv;int main( int argc, char** argv ){ Mat image; image = imread( argv[1], 1 ); if( argc != 2 || !image.data ) { printf( "No image data \n" ); return -1; } namedWindow( "Display Image", CV_WINDOW_AUTOSIZE ); imshow( "Display Image", image ); waitKey(0); return 0;} 2. 新建CMakeLists.txt文件,代码如下: project( DisplayImage ) find_package( OpenCV REQUIRED ) add_executable( DisplayImage DisplayImage ) target_link_libraries( DisplayImage ${OpenCV_LIBS} ) 3. 编译两个文件 cd <DisplayImage_directory> cmake . make4. 运行编译好的结果./DisplayImage lena.jpg 三、在XCode中使用OpenCV1. 创建一个空的command line工程。2. 在main.cpp中粘贴以下代码://// main.cpp// Created by Jason Yank on 13-05-08.// Copyright (c) 2013年 Jason Yank. All rights reserved.// #include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv/cvaux.hpp>#include <fstream>using namespace std; #define BYTE unsigned char int main(int argc, const char * argv[]){ // insert code here…#if 1 //get the image from the directed path IplImage* img = cvLoadImage("/Users/jasonyank/1.jpg", 1); //NSLog(img); //create a window to display the image cvNamedWindow("picture", 1); //show the image in the window cvShowImage("picture", img); //wait for the user to hit a key cvWaitKey(0); //delete the image and window cvReleaseImage(&img); cvDestroyWindow("picture");#endif //return return 0;} 3. 添加lib文件:右键点击工程名,选择“Add files to..”,在文件选择对话框弹出来时输入“/”,在弹出的路径框中输入:/usr/local/lib,全选该文件夹下的全部dylib文件,添加至工程。5. 添加lib文件查找支持: 点击工程名文件,进入“Build Settings”选项卡,在“Library Search Paths”栏中输入“/usr/local/lib”6. 添加头文件:点击工程名文件,进入“Build Settings”选项卡,在“Header Search Paths”栏中输入:“/usr/local/include /usr/local/include/opencv”7. 编译运行整个工程,运行成功~~四、在Eclipse中使用OpenCV1. 按照正常的步骤,使用eclipse建立一个Mac C++工程,包含一个cpp文件,代码如xcode中的代码相同即可。2. 右击工程名, 选择“Properties”,在属性配置页中选择,点击C/C++ Build, 在下拉选项中选择 Settings. 在右边的选项卡中选择 Tool Settings。3. 在GCC C++ Compiler选项列表中选择Includes,在Include paths(-l)中添加安装好的opencv的头文件存放目录:/usr/local/include/4. 在MacOS X C++Linker选项列表中选择Library,在Library search path (-L)中添加安装好的opencv Lib文件存放目录:/usr/local/lib/5. 在MacOS X C++Linker选项列表中选择Library, 在Libraries(-l) 中依次点击“+”号,添加需要使用的Lib文件(通常情况下,使用前三个):opencv_core opencv_imgproc opencv_highgui opencv_ml opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_contrib opencv_legacy opencv_flann6. 重新build all工程,大功告成~~*^_^*
⑶ 苹果系统用什么语言开发的
ios开发语言是-C,用的开发工具是Xcode。
ios系统的开发语言Objective-C语言,是一种面向对象的编程语言,那也就是C语言的扩充语言,也就是说在c的基础上升级的语言,那么如果是开发的人员的角度来说,如果懂得C语言,那么在做Objective-C开发或者是学习就非常方便,那么目前Objective-C语言主要是用于Mac OS X和GNUstep这两个使用OpenStep标准的系统上。
Xcode开发工具从诞生到现在已经有28个版本了,那么Xcode是苹果公司向开发人员提供一种在ios基础开发的一种基础开发环境工具,最初也基于mac操作系统下,那么也就是说,做苹果相关产品的应用开发,几乎都是苹果公司提供的Xcode开发工具。
(3)macos头文件扩展阅读:
苹果公司一直在尝试降低Objective-C语言的复杂度淘汰手动内存管理以及C标准头文件,引入更符合当下编程语言潮流的ARC机制,还有通过.语法来访问属性的getter/setter方法等等,都是为了降低Objective-C的学习难度。即便如此,学习Objective-C仍然需要克服学习门槛。它的热度完全是由基于Objective-C编写的热门iOS应用带起来。
Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由Apple Inc开发。Xcode是开发macOS和iOS应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。
Xcode同时也是一种语言,作为一种基于XML的语言,Xcode可以设想各种使用场景。它提供了一种独立于工具的可扩展的方法来描述编译时组件的各个方面。
⑷ 在使用mac的xcode编 c++程序的时候包含conio.h头文件显示错误:“'conio.h' file not found”,如何解决
mac下没有这个头文件。我跑了下载的项目因为没有这个头文件报错,网上查了好久,解决不了。后来我把#include "conio.h"这一行删了就跑通了,也没有报错(并没有用到它?)。希望帮助到大家。
⑸ mac下c++头文件在哪用了/usr/include/貌似找到的是c头文件
window.h主要定义了windows环境编程的api,而mac属于unix环境编程,则需要根据编程内容决定引用的头文件,不能如此类比,因为api不同。
⑹ 如何在mac osx中创建动态链接库
创建动态链接库:1、生成mole文件,也就是.o文件。这跟一般的Linux没什么区别。cc -c a.c b.c 就得到a.o和b.o2、用ld来合并.o文件ld -r -o c.o a.o b.o 这个也没什么特别。3、用libtool来创建动态链接库。libtool -dynamic -o c.dylib a.o b.o ( 这里也可以用libtool -static -o c.a a.o b.o就创建静态库)如果用gcc直接编译,linux下一般是:gcc -shared -o c.so a.c b.c而在Mac OS X下需要:gcc -dynamiclib -o c.dylib a.c b.c这往往也是向Mac OS X移植unix程序常出问题的地方。如果用autoconf/automake等工具,出错的几率应该小一些。访问动态链接库:1、nm是最常用的,这个用法跟linux下差不多nm c.dylib 可以看到导出符号表,等等。2、另一个常用的工具是otool,这个是Mac OS X独有的。比如想看看c.dylib的依赖关系otool -L c.dylib对Framework的理解:Framework是Mac OS X下必不可少的部分,不妨去看看/System/Library/Frameworks/下面,一大堆Framework。Framework是dylib的进一步演化,它把头文件、文档、动态链接库等整合成一个有机的目录,类似一种自描述的方式,这种做法其实在Mac OS X下随处可见。比如应用程序,一般都是一个目录,譬如/Applications/iTunes.app目录对应应用程序iTunes,双击这个目录即开始执行。这种做法和Windows下常见的一个exe/dll打天下很不相同。Framework的创建工具也是libtool,详细用法参考man。//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////这里介绍一下怎么开发最简单的Cocoa程序,这个程序实在是太简单,因为如果你用Xcode的话,选用Cocoa Foundation Command Tool的话,应该不用写任何代码, 但是这里是为了向大家介绍一下,这个最简单的程序是如何通过gcc编译成功的,当然里面还有一个东西可以做一点解释.先看看源代码:#import <Foundation/Foundation.h>int main(int argc, char* argv[]){NSLog(@"Hello Cocoa From Console");return 0;}代码很简单,你可以用你喜欢的任何文本编辑工具来完成它, 源码文件名为hello.m, 这样简单的一个程序用xcode的话就太奢侈了.ok,下面来看看怎么编译这个程序, 打开终端, cd 到源文件所在的目录,然后执行下面的这个命令,就可以生成一个叫做hello的程序了.gcc -framework Foundation hello.m -o hello这里面需要解释的是 -framework 参数, 熟悉gcc的朋友可能知道,gcc中的-l参数其实是传递给ld命令的,是用于链接器工作的, mac下面的-framework和-l参数的效果是一样的,就是告诉ld编译后的目标文件在生成最终的执行文件的时候,要连接哪个framework, 因为mac的核心Darwin也是一个unix,所以在Mac下面-l参数也是被支持的.另外还有一点, gcc还可以接受-L来指定要连接的library在什么位置,这个选项一般用来连接第三方的库, 那么如果我想连接第三方的Framework的时候,我应该怎么做呢? -L /your/Framework? 不对, gcc针对这种情况使用了另外一个参数 -F, 所以如果你要连接第三方的framework, 比如/opt/Qt4/QtCore, 你应该像下面这样使用gcc.gcc -F/opt/Qt4 -framework QtCore qttest.cpp -o qttest好了,现在继续来解释上面那个程序里面的另一个问题,为什么字符串的前面多了个@符号呢?想必这个东西也困扰了不少人, 在obj-c里面@"string"这种模式在编译的时候会被编译器进行一个转换,生成一个NSString指针的实例,所以在需要NSString指针作为参数的地方,如果你不想明确的构造这个NSString指针, 那么用这种方法就最简单了,但是如果你将@"String"模式用在了需要c string的地方,就要出现错误了。Note:因为obj-c都是用指针操作的,用"字符串"这样表示的c string,明显compiler是不知道这个"字符串"的地址应该放在在哪里。前面加个at,那么@"字符串"的意思基本上是new一个叫做"字符串"的NSString,并且返回这个NSString的地址。所以NSLog("Hello Cocoa From Console");这样就会出错,NSLog(@"Hello Cocoa From Console");这样就没问题。
⑺ 哪里错了
原型:
intsystem(constchar*command);int_wsystem(constwchar_t*command);//头文件要求HeadersRequire:system:<process.h>or<stdlib.h>_wsystem:<process.h>or<stdlib.h>or<wchar.h>
/code/main.cpp:Infunction‘intmain()’:/code/main.cpp:7:14:error:‘system’wasnotdeclaredinthisscopesystem("cls");^sandbox>exitedwithstatus0->MS-
但是在macOS X上iostream和stdlib都支持..所以
在Microsoft Windows上必须填上特定头文件
macOS X G++无解
⑻ 求解,在mac上用不了malloc.h头文件。一运行就说找不到文件。试了两台Mac了,都这样…
mac上:解决方法:将报错文件中#include <malloc.h>修改为#include <sys/malloc.h>
⑼ mac gcc 提示找不到头文件error: stdio.h: No such file or directory
你看看有没有/include或者/usr/include文件夹如果有,就把#include <stdio.h>改为#include "/include/stdio.h"(或者你把头文件放在/usr/include下的话就改为#include "/usr/include/stdio.h")不行的话就后修改 Base SDK 从Mac OS X 10.6改为Current Mac OS 编译
⑽ Mac下编程用什么替换windows.h头文件
不行,你不能在除了 Windows 的任何系统上使用 Windows.h。你要理解 API 的概念,windows.h 这个头文件是 Windows 带的,而不是 C 语言自身有的。事实上,出了 Windows,没有任何系统——实际上也是在真真切切用 C 的系统——例如所有在跑类 Unix,比如 OS X、Linux 甚至 FreeBSD 上的,都不能用 Windows 这套 API。这也是为什么坊间都说 OS X 是适合做编程,特别是适合学编程的,因为 OS X 是“体制内”,也就使用和全世界除了 Windows 之外所有的东西都互通的底层架构的,而且它在过去的大部分时候都要比各类 Linux 要容易上手,所谓的“更优雅”。
看完了 1,你一定在想那使用 system "" 也就是不可能的了。毕竟,因为 Windows 系统如此的离经叛道,所以它所使用的 CLI,也就是命令行,和其他系统也是不一样的。其他系统的命令行叫做 Shell,一般来说是通过一个叫做 Terminal,也就是终端的 App 进入。但是,每个系统都会有自己的 API,在 C 中进行 Shell 操作这种很基本的事情自然也有办法解决。下面给了你参考链接,是 Apple Developer Library 的,英文文献,不过更准确详尽。如果你打算认真去学编程,一定要尽快适应看英文文献。如果你实在是看不懂,我已经告诉你原理了,自己去网络一下“在 C 中执行 Shell”就好了。
参考链接(希望不要被吞掉):
https://developer.apple.com/library/mac/documentation/OpenSource/Conceptual/ShellScripting/shell_scripts/shell_scripts.html