小编mlo*_*kot的帖子

使用Xcode分析C++

是否可以使用Xcode对C++应用程序进行分析;

  • 内存泄漏就像valgrind一样
  • 运行程序前可能出现的错误

谢谢,我是mac和xcode的新手

哪里可以找到一个很好的教程呢?

c++ memory debugging macos xcode

9
推荐指数
2
解决办法
1万
查看次数

如何使用SOCI C++数据库库?

我正在尝试在我的程序中实现社交,但我不知道如何.我在Linux上使用C++,在使用netbeans的项目上.我按照以下步骤操作:http://soci.sourceforge.net/doc/structure.html进行安装,我尝试从/ src/core和soci-mysql.h中复制文件soci.h/backends/mysql在我的项目中,但它给出了编译错误(这些文件包含其他社会文件,但将所有文件复制到目录中是不合逻辑的......).我已经读了好几次指南,但我不明白我做错了什么.示例仅包含这些文件.

谢谢.

编辑:我在答案下方的评论中提供了更多信息.我不知道我必须遵循哪些步骤来实施社会.

c++ mysql database wrapper soci

9
推荐指数
1
解决办法
7973
查看次数

如何使用Sphinx管理多个版本的文档?

我维护一个用C++编写的小型库项目.我想使用Sphinx维护每个发布版本的库网站+用户文档.我发现[类似问题如何管理多个版本?sphinx-dev邮件列表中,我已经碰到但没有广泛的跟进.

如何管理多个版本?

我想到这样的基本结构:

mylib/     <- website root
mylib/...
mylib/tutorial/...
mylib/doc   <- list of documentation per release version
mylib/doc/1.0.0
mylib/doc/2.0.0
mylib/doc/X.Y.Z
Run Code Online (Sandbox Code Playgroud)

我正试图找出这种结构的最佳实用配置.我有root配置mylib/conf.py,我控制网站结构和内容.

我可以将.rst文件放入mylib/doc/1.0.0mylib/doc/2.0.0使用root conf.py构建它们.但是,控制网站和文档的toctree似乎很棘手.

因此,我认为将网站配置/构建与每个版本的文档配置/构建分开可能更实际:

mylib/conf.py
mylib/doc/1.0.0/conf.py
mylib/doc/2.0.0/conf.py
mylib/doc/X.Y.Z/conf.py
Run Code Online (Sandbox Code Playgroud)

但我希望mylib/doc/X.Y.Z/conf.py使用相同布局的主要文档是根文档mylib/,所以我可以有一致的外观,例如页眉中的链接等.

这样我就可以轻松实现toctree每个文档的一致性.应该很容易遍历目录并分别为网站和每个doc版本执行构建.

关于搜索文档,我不介意搜索引擎扫描每个查询的所有文档版本以及我不介意将搜索引擎特定于特定版本(搜索框显示在同一个地方,但取决于正在阅读什么,它只扫描当前版本的索引).

有没有更好的方法来实现这一目标?

我在sphinx中找到了类似的问题,要求提供多个单独的文档,我想知道Intersphinx插件在这里是不是一个好主意.

更新:

  • 2017-04-10:SO答案指向一个有趣的Sphinx扩展:sphinxcobtrib-versioning
  • 2011-10-21:在评论中提出olt的问题,mylib/并不是我在VCS中构建项目的意思.所以,我不想在VCS中维护多个版本的文档.这mylib/只是简化可视化的结构.它也可以是我将Sphinx源放在一起的工作目录(例如从版本分支中取出等)以及我在哪里启动Sphinx来构建输出.

c++ documentation python-sphinx

9
推荐指数
1
解决办法
3029
查看次数

在Python C API中从子类型传递参数到tp_new和tp_init

我最初在Python capi-sig列表中提出了这个问题:如何从子类型向tp_new和tp_init传递参数?

我正在阅读关于子类型的Python PEP-253,并且有很多关于如何构造类型,调用tp_newtp_init插槽等的好建议.

但是,它没有关于将参数从sub传递到super类型的重要说明.根据说明,PEP-253似乎未完成:

(XXX应该有一两段关于在这里传递的论点.)

所以,我试图推断Python类子类型中众所周知的一些策略,特别是每个级别剥离参数等的技术.

我正在寻找技术来实现类似的效果,但使用普通的Python C API(3.x):

class Shape:
    def __init__(self, shapename, **kwds):
        self.shapename = shapename
        super().__init__(**kwds)

class ColoredShape(Shape):
    def __init__(self, color, **kwds):
        self.color = color
        super().__init__(**kwds)
Run Code Online (Sandbox Code Playgroud)

Python C API中的等价物是什么?

如何处理类似的情况,但具有特定于派生类的参数以不同的顺序预期?它是在args元组结尾处给出的参数(或者kwdsdict,我假设原理是相同的).

这是一些(伪)代码,说明了这种情况:

class Base:
   def __init__(self, x, y, z):
      self.x = x
      self.y = y
      self.z = z

class Derived(Base):
   def __init__(self, x, y, a):
      self.a = a
      super().__init__(x, y, None):
Run Code Online (Sandbox Code Playgroud)

请注意,如果a …

python python-c-api

9
推荐指数
1
解决办法
1175
查看次数

C++:获取数组中char元素的索引

我需要获取数组中的字符数.

const char myarray[5] = {'0', 'a', 'e', 'f', 'c'}; // Create array of char
int number=0; // Create variable
number = getposition(myarray, 'f'); // Now number equals to 3
number = getposition(myarray, 'z'); // -1, because array doesn't have this char
Run Code Online (Sandbox Code Playgroud)

我的任务很简单,因为数组没有重复的字符(例如,它不能像这样:{'a','1','f','a'}).我该怎么做?

c++ arrays char

7
推荐指数
3
解决办法
4万
查看次数

如何配置CMake目标或命令来预处理C文件?

我最初在CMake邮件列表上问过这个问题:如何配置目标或命令来预处理C文件?

我正在将基于GNU Autotools的构建配置移植到CMake,我必须处理C预处理以生成文件.

预处理器的输入是SQL文件,使用C预处理器指令#include "another.sql",等等.

目前,Makefile使用以下规则生成普通SQL文件作为输出:

myfile.sql: myfile.sql.in.c
    cpp -I../common $< | grep -v '^#' > $@
Run Code Online (Sandbox Code Playgroud)

因此,myfile.sql它意味着是构建过程的产品之一,类似于共享库或可执行文件.

我应该用什么CMake工具来达到同样的效果?

目前还不清楚我,如果我要使用add_custom_command,add_custom_target或结合运用.

显然,我正在寻找一种可移植的解决方案,至少可以使用GNU GCCVisual Studio工具集.我认为我必须定义特定于平台的自定义命令,一个用于cpp预处理器,一个用于cl.exe /P.

或者,CMake是否为C预处理器提供任何类型的抽象?

我扫描了档案,但我只发现了基于make功能的fortran文件或解决方案的预处理:make myfile.i 所以,它并不是我想要的.

更新:根据 CMake邮件列表上的Petr Kmoch收到的解决方案添加了答案.

sql cmake c-preprocessor

7
推荐指数
2
解决办法
3277
查看次数

Git checkout分支并修剪与之前结账相关的所有内容(包括git-lfs)

我有一个包含多个子模块的超级项目的回购.两者的大量文件都在Git LFS中.

repo带有多个长期发布分支.

问题

完整克隆传输20 GB的Git和Git LFS对象.

check of master将总repo总计减少到40 GB,即对象和工作树文件在一起.

让我们考虑三个单独的克隆作为规范的方式来创建三个工作副本,每个长寿分支一个:

git clone --branch master      --recursive --jobs 8 https://repo repo_master
git clone --branch release/1.0 --recursive --jobs 8 https://repo repo_release1
git clone --branch release/2.0 --recursive --jobs 8 https://repo repo_release2
Run Code Online (Sandbox Code Playgroud)

我正在尝试研究上述网络优化的等价物: - 使用默认主机克隆一次克隆 - 制作克隆存储库的多个副本 - 结帐发布分支

问题

  1. 如何签出从远程获取的现有分支,删除以前的分支并清理剩余的分支?

  2. 如何清理与先前检出的主机及其工作树相关的所有内容,任何缓存的先前LFS下载等?

但是,要保持原产地/主人的历史.

解决方案原型

以下是我为网络优化工作流程提出的建议:

git clone --branch master --recursive --jobs 8 https://repo repo_master

cp -a repo_master repo_release1
cp -a repo_master repo_release2

cd repo_release1
git checkout -b release/1.0 --track origin/release/1.0

git pull
git …
Run Code Online (Sandbox Code Playgroud)

git git-checkout git-submodules git-lfs

7
推荐指数
1
解决办法
235
查看次数

PyImport_ImportModule和import语句加载到不同的命名空间?

以下是在C/C++中扩展嵌入式Python 3.x的程序的规范示例:

#include <Python.h>
//// Definition of 'emb' Python module ////////////////////
static PyObject* emb_foo(PyObject *self, PyObject *args)
{
    char const* n = "I am foo";
    return Py_BuildValue("s", n);
}
static PyMethodDef EmbMethods[] = {
    {"foo", emb_foo, METH_VARARGS, "Returns foo"},
    {NULL, NULL, 0, NULL}
};
static PyModuleDef EmbModule = {
    PyModuleDef_HEAD_INIT, "emb", NULL, -1, EmbMethods,
    NULL, NULL, NULL, NULL
};
static PyObject* PyInit_emb(void)
{
    return PyModule_Create(&EmbModule);
}
//// Embedded Python with 'emb' loaded ////////////////////
int main()
{
    PyImport_AppendInittab("emb", &PyInit_emb); …
Run Code Online (Sandbox Code Playgroud)

c++ python import python-embedding python-c-api

6
推荐指数
1
解决办法
4459
查看次数

将IncrediBuild与DevEnv.exe与MSBuild.exe一起使用

我使用Xorax IncrediBuild来构建Visual Studio 2013(或更高版本)的解决方案和项目,它们主要.vcxproj是一堆.csproj的.

我花了一点时间挖掘,但我已经了解到:

因此,对于Visual Studio项目,有两种可用模式:

  • BuildConsole.exe MyProj.vcxproj 哪个使用 DevEnv.exe

  • BuildConsole.exe MyProj.vcxproj /usemsbuild 哪个使用 MSBuild.exe

我想知道使用这两个引擎之间是否存在任何差异.

我做了一些测试并观察到:

  • IncrediBuild"初始化..."阶段需要稍长的时间DevEnv.exe.

  • BuildConsole.exe 显然,产生不同的输出.

  • 构建性能没有(或无关紧要)差异.

如果构建单独的C/C++本机项目(.vcxproj)以及整个解决方案(.sln),使用对比的优缺点是什么?DevEnv.exeMSBuild.exe

msbuild build visual-studio devenv incredibuild

6
推荐指数
1
解决办法
5070
查看次数

查询字符串的URL部分是问号吗?

TL; TR:在查询的URL部分是(第一个)问号还是只是一个后跟查询的分隔符?

RFC 1738,部分3.3,表明"?" (问号)不是查询字符串的一部分,只是将其与路径分开:

http://<host>:<port>/<path>?<searchpart>
Run Code Online (Sandbox Code Playgroud)

RFC 3986附录A中提出的语法也表示"?" 不是实际查询字符串的一部分:

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
Run Code Online (Sandbox Code Playgroud)

现在,让我们考虑两个网址:

  1. http://server.com/api/item.json
  2. http://server.com/api/item.json?

它们是等同的还是不同的?

区分它们并用于识别两种不同的资源是否有效?

url rfc3986 query-string rfc1738

6
推荐指数
1
解决办法
1235
查看次数