我是 OSX 新手,我正在习惯框架的工作方式。
在 C++ 项目中,当我想要链接预安装的框架(例如 OpenGL.framework)时,我只需输入“-framework OpenGL”即可。
另一方面,当我将新框架复制到例如 /Library/Frameworks 中时,然后我进入“-framework MyFramework”,该框架已链接,但我需要手动包含头文件。
为什么会这样呢?标题不是应该已经在框架内了吗?为什么我需要将它们包含在某些框架中而不是其他框架中?
作为前言,我使用 eclipse c++ 作为 IDE。我使用的是 c++ 0x 11 标准。(所以我可以使用互斥锁)我对 C++ 很陌生,但以前做过一些 C 并且非常熟悉 Java 编程。另外,我知道 .h 通常不是 C++ 文件的类型。
我试图在我的类 stlad::Dispatcher 中包含 stlad::KeyHook 的私有对象成员,并且在构建时出现以下错误:
Building file: ../src/KeyHook.cpp
Invoking: GCC C++ Compiler
g++ -std=c++0x -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/KeyHook.d" -MT"src/KeyHook.d" -o "src/KeyHook.o" "../src/KeyHook.cpp"
In file included from ../src/KeyHook.h:10:0,
from ../src/KeyHook.cpp:8:
../src/Dispatcher.h:23:11: error: ‘KeyHook’ in namespace ‘stellad’ does not name a type
stellad::KeyHook keyhook;
^
src/subdir.mk:21: recipe for target 'src/KeyHook.o' failed
make: *** [src/KeyHook.o] Error 1
Run Code Online (Sandbox Code Playgroud)
许多行已被删除以减少噪音,例如不必要的包含、原型和函数声明。
调度员.h
/* …Run Code Online (Sandbox Code Playgroud) 我开始使用C并且通常使用eclipse进行其他开发.但事实证明eclipse CDT插件没有附带编译器,因此需要单独安装编译器(因为我在Windows Vista上).
您使用的编解码器已经使用了哪些C/C++ IDE.我被告知Microsoft Visual C++ Express Edition.还有什么?我想我在推出它的时候在朋友的机器上看到了类似c/c ++ dev的东西,编译器附带了吗?我对所有建议持开放态度.
我使用Eclipse/CDT在Eclipse C++项目("MyAlgorithm")中实现了一个相当复杂的算法.为了能够可视化算法的步骤,我想创建一个简单的Qt GUI.我已经下载并安装了Qt Eclipse集成,并创建了一个带有主窗口的Qt Project("MyGUI").一切都像它应该编译 - 各个组件都到位.
但是,当我尝试在MyGUI中使用MyAlgorithm中的类时,一切都停止了...虽然我在MyGUI中引用了MyGgorithm的所有可能的对话框和我能想到的地方[1]但是构建项目仍然失败了:
main.cpp:5:致命错误:MyAlgorithmClass.h:没有这样的文件或目录
我在MyGUI中引用MyAlgorithm的地方列表(所有在"MyGUI"的项目属性中):
虽然构建过程失败,但当我尝试将其包含在"MyGUI"项目中时,Eclipse/CDT自动完成功能确实表明存在"MyAlgorithmClass.h".我还注意到,更改项目设置(如上面列表中所述)不会触发Makefile中的任何更改.
可能是Qt Eclipse集成会阻止CDT相应地更新Makefile,导致构建过程失败,因为缺少编译器/链接器的参数?
谢谢你的帮助!
好的,所以我一直在关注本教程.
我设置了所有的东西(双重检查了一切),我改变的只是(步骤10),来自
${OGRE_HOME}\boost_1_44
Run Code Online (Sandbox Code Playgroud)
至
${OGRE_HOME}\boost
Run Code Online (Sandbox Code Playgroud)
因为在我的Ogre SDK版本(1.81)中,没有boost_1_44文件夹,只有boost文件夹.
无论如何,正如我所说,当我尝试编译我的程序时,我得到了这三个错误:
undefined reference to boost::system::generic_category()
undefined reference to boost::system::generic_category()
undefined reference to boost::system::system_category()
Run Code Online (Sandbox Code Playgroud)
我试过将这个:-lboost_system添加到我的Project中.我去了Properties> C/C++ Build> Settings> GCC C++ Compiler> Miscellaneous并将它添加到现有的标志中,但没有运气.
我用Google搜索,显然这是唯一可行的解决方案.所以,我问你,如果有人能解释我(尽可能简单,请一步一步)如何解决这个编译错误.
编辑:我使用MinGW作为编译器(我用它与MSYS).
我刚刚开始学习 C++,试图学习一些基础知识。现在在 Eclipse 中使用 gcc 版本 5.2.1 进行编译,项目使用 c++11 参数进行编译。
\n\n现在,当我尝试时,就会出现包含问题#include <map>(只要编译器进入其中,我什至不使用映射,只是尝试包含它,这并不重要)。据我所知,地图本身有问题,但似乎不对。这里是简短的失败片段。
08:54:59 **** Incremental Build of configuration Debug for project RpnCalculator ****\nmake all \nBuilding file: ../Test/AddShouldBeRegistered.cpp\nInvoking: Cross G++ Compiler\ng++ -I/home/yoger/Coding/cpputest/include -O0 -g3 -Wall -c -fmessage- length=0 -std=c++11 -v -MMD -MP -MF"Test/AddShouldBeRegistered.d" -MT"Test/AddShouldBeRegistered.d" -o "Test/AddShouldBeRegistered.o" "../Test/AddShouldBeRegistered.cpp"\nUsing built-in specs.\nCOLLECT_GCC=g++\nTarget: x86_64-linux-gnu\nConfigured with: ../src/configure -v --with-pkgversion=\'Ubuntu 5.2.1-22ubuntu2\' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin …Run Code Online (Sandbox Code Playgroud) 我开始用C++学习递归,我遇到了一个我无法弄清楚的问题.
发生的事情是Eclipse和g ++说我的变量类型与函数声明不匹配,但我相信它确实如此.
请看一下,首先在Eclipse的屏幕转储中显示错误:

还有文本而不是图形形式的代码:
int saida(char **matriz, char dir,int entrada_l, int entrada_c,int* zeros,int** tracker) {
int flag3,flag4,tamanho_martiz = 8;
int resp;
if(dir == 'c'){
if(matriz[entrada_l++][entrada_c] == '0'){
resp = saida(matriz, 'c',entrada_l,entrada_c,&zeros,tracker);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有一个小问题。如何总结列表包中的所有数字?例如:列表 1 是:
0.03326
0.02712
0.02178
0.01918
0.01751
0.01671
0.01602
0.0156
0.01549
0.01543
0.01568
0.01625
0.01658
0.01732
0.0178
0.01827
0.01855
0.01895
0.01949
0.02017
0.0211
0.02213
0.0236
0.02753
0.04504
0.09489
0.10131
0.11255
Run Code Online (Sandbox Code Playgroud)
我想总结所有的数字。