我试图在网上搜索这个问题,但似乎我无法找到解决问题的好方法.好吧,我正在尝试使用gdb来调试我的c ++程序.该程序由一个简单的main.cpp和一个model.h组成.编译命令是
g++ -Wall -g -c main.cpp
g++ -Wall -g main.o -o OUTPUT
Run Code Online (Sandbox Code Playgroud)
由于几乎所有算法都存储在model.h中,我需要调试该头文件而不是cpp文件.但是,每当我试图在标题上放置一个断点时
tbreak model.h:163
Run Code Online (Sandbox Code Playgroud)
gdb总是给我一条消息"没有名为TNFmodel.h的源文件".
在GDB的另一个问题断点中,我看到了一个解决方案,即通过"dir"将包含标题的文件夹添加到库中.但我的头文件已经在源文件夹中,并在尝试后
dir ./
Run Code Online (Sandbox Code Playgroud)
问题依然存在.
所以谁知道什么是错的?如何使用gdb调试头文件?
我的项目(在C中)在构建时具有第三方依赖.但是,默认情况下,第三方库是安装的,/opt/而不是/lib,我找不到它pkg-config.从mesonbuild我的文档中,我应该使用declare_dependency,我没有其源代码将其视为我的子项目.如果我用dependency()它来定义它,我找不到正确的参数来定义自定义位置.
如何声明非标准第三方库的依赖关系?
我正在尝试使用vim-latex,因为现有的模板非常简单且令人不满意,我正在尝试构建自己的一些模板.但是,在编写了我自己的模板并存储在"/ ftplugin/latex-suite/templates"之后,没有任何反应.该软件根本不会扫描新模板.我错过了一些让它起作用的步骤吗?
我需要从协作者加载一组pickle数据.问题是,我似乎需要多阵列.我的代码如下:
f = open('data.p', 'rb')
a = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)
这是错误信息.
ImportError Traceback (most recent call last)
<ipython-input-3-17918c47ae2d> in <module>()
----> 1 a = pk.load(f)
/usr/lib/python2.7/pickle.pyc in load(file)
1382
1383 def load(file):
-> 1384 return Unpickler(file).load()
1385
1386 def loads(str):
/usr/lib/python2.7/pickle.pyc in load(self)
862 while 1:
863 key = read(1)
--> 864 dispatch[key](self)
865 except _Stop, stopinst:
866 return stopinst.value
/usr/lib/python2.7/pickle.pyc in load_global(self)
1094 module = self.readline()[:-1]
1095 name = self.readline()[:-1]
-> 1096 klass = self.find_class(module, name)
1097 self.append(klass)
1098 dispatch[GLOBAL] = …Run Code Online (Sandbox Code Playgroud) 假设我有一个类和一个函数
class A
{
int a;
int b;
int mul()
{
return a+b;
}
};
...
void func(int af, int bf, int (*fc)())
{
...
}
Run Code Online (Sandbox Code Playgroud)
在main函数中,函数应该使用A类的方法
int main
{
A as;
...
func(as.a, as.b, as.mul);
}
Run Code Online (Sandbox Code Playgroud)
但是,我不能那样做,编译器一直告诉我我通过了
(int&, int&, 'unresolved overloaded function type')
Run Code Online (Sandbox Code Playgroud)
进入候选函数
(int, int, void(*)()).
Run Code Online (Sandbox Code Playgroud)
为什么会这样,以及如何将类的方法传递给另一个函数?
哦,我想我应该把问题说清楚一点。func(...)实际上是我正在研究的算法中的一个函数。并且class A是一个模型,将使用该算法进行模拟。所以我不认为我会在函数 B 中专门使用 A 的实例,而只是将 A 的方法和组件传入并使用它们。
更新:有些人提到在 A 类中使用静态方法。但是,这仍然是部分解决方案。使用静态方法mul()将迫使我声明 a 和 b 都是静态的。如果我必须使用 A 的多个实例,在我的主函数中的每个实例中使用不同的方法 a、b,那么使用静态变量只会失败。
那么,在不使用静态变量/方法的情况下如何解决这个问题还有其他建议吗?我记得在 python 等脚本语言中,传递任何类型的方法基本上都不是问题。为什么我不能在 C++ 中做类似的事情?或者 C++ 中是否有解决方法可以帮助我做到这一点?
有时一遍又一遍地重写类似的命令很无聊,所以我想预先编写所有这些命令,将它们保存到一个自定义命令中并一劳永逸地使用它.但是,由于我将使用的新命令仅用于我当前使用的文件,我真的不想打扰更改vimrc文件.所以这是我的问题,是否可以将命令预先写入文件并将其加载到vim然后使用它一次?如果可能,该怎么办?
谢谢.