小编Red*_*ddy的帖子

dpkg:如何忽略post/pre脚本中的错误

我开发了debian软件包,并且在我的post/pre脚本中有语法错误(在我的情况下是postrm).我成功安装包,但现在我无法删除此包:

/var/lib/dpkg/info/blablabla.postrm: 11: Syntax error: ";;" unexpected
dpkg: error processing blablabla (--remove):
 subprocess installed post-removal script returned error exit status 2
Run Code Online (Sandbox Code Playgroud)

如何忽略它并完全删除包?

debian dpkg package

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

map,lambda,remove_if

所以,我对std :: map,lambda和stl算法(remove_if)有疑问.实际上,与std :: list或std :: vector相同的代码运行良好.

我的测试示例:

#include <map>
#include <iostream>
#include <algorithm>

struct Foo
{
    Foo() : _id(0) {}
    Foo(int id) : _id(id)
    {

    }

    int _id;    
};
typedef std::map<int, Foo> FooMap;


int main()
{
    FooMap m;
    for (int i = 0; i < 10; ++i)
        m[i + 100] = Foo(i);

    int removeId = 6;
    // <<< Error here >>>
    std::remove_if(m.begin(), m.end(), [=](const FooMap::value_type & item) { return item.second._id == removeId ;} ); 

    for (auto & item : …
Run Code Online (Sandbox Code Playgroud)

c++ lambda stdmap stl-algorithm c++11

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

如何为基于CMake的项目指定构建选项?

我不明白如何使用CMake配置项目和处理命令行选项.我需要设置第三方库目录的变量(例如Poco和GTest).通常,我只是运行带有必要参数的./configure.例如:

./configure --poco-inc=~/libs/poco/include --poco-lib=~/libs/poco/lib --gtest-inc=~/libs/gtest/include --gtest-lib=~/libs/gtest/lib
Run Code Online (Sandbox Code Playgroud)

但是如何将等效信息传递给CMake?如何在cmake文件中使用'set'或'property'指定选项并进行处理?

command-line configure cmake

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

C++ Boost.Python:2个问题

所以,我搜索好的工具将我的C++代码与python集成,起初我看了boost.python.

我从boost文档中得到了问候语,并尝试构建并运行它.源代码是(src/hello.cpp):

#include <Python.h>
#include <boost/python.hpp>

char const* greet()
{
   return "hello, world";
}

BOOST_PYTHON_MODULE(hello_ext)
{
    using namespace boost::python;
    def("greet", greet);
}
Run Code Online (Sandbox Code Playgroud)

问题1 - Windows和mingw

我尝试构建和我的结果:

g++ -o build\hello.o -c -IE:\Programming\libs\boost_1_48_0 -IE:\Programming\Python\include src\hello.cpp
g++ -shared -o pyhello.dll build\hello.o -LE:\Programming\libs\boost_1_48_0\stage\lib -LE:\Programming\Python\libs -lboost_python-mgw45-mt-1_48 -lpython27 -Wl,--out-implib,libpyhello.a
Creating library file: libpyhello.a
build\hello.o:hello.cpp:(.text+0x20): undefined reference to `_imp___ZN5boost6python6detail11init_moduleEPKcPFvvE'
Run Code Online (Sandbox Code Playgroud)

使用boost :: python也有类似的4个未定义的错误.

我的构建boost命令行: bjam toolset=gcc variant=release

我在谷歌中找到了类似的麻烦(也在stackoverflow上),但在我的情况下没有找到答案.

问题2 - 使用模块(linux)

在linux平台上我对构建模块没有任何问题,同样的源编译得很好:

g++ -o build/hello.os -c -fPIC -I/usr/include/python2.7 src/hello.cpp
g++ -o libpyhello.so -shared build/hello.os -lboost_python -lpython2.7
Run Code Online (Sandbox Code Playgroud)

现在,我该如何使用它?在文档中没有关于模块命名的文字,引用:

可以通过编写Boost.Python包装器来暴露给Python: …

c++ python boost boost-python

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

Python,字符串格式,换行符(C++ - std :: endl)

我格式化字符串(在重载运算符str),我不想使用原始\n或\ r \n标记.在C++中有像std :: endl这样的python跨平台换行符标识符吗?

我试图谷歌,但没有找到答案.

python newline string-formatting

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

没有CA root的SSL和openssl s_client

所以,我的密钥和证书文件正在使用CURL没有问题.

curl -k --key key --cert cert --url myurl
Run Code Online (Sandbox Code Playgroud)

没问题.如果测试连接与openssl s_client我错误19链中的自签名证书.

openssl s_client -key key -cert cert -connect myurl:443
Run Code Online (Sandbox Code Playgroud)

因此,似乎openssl必须有替代选项'-k'的curl,这意味着不安全,允许连接到没有证书(H)的SSL站点.有人知道吗?

ssl curl openssl

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

C++删除具有有效地址的指针

我正在使用Poco C++库并导致奇怪的问题.Poco使用自己的共享指针类SharedPtr进行内部指针操作.在我的情况下,静态对象Poco::SSLManager具有SharedPtr证书Handlers对象的成员.当程序运行结束时,静态对象被删除,我抓住了分段错误.使用GDB调试器,我看到核心转储,不明白问题.删除SharedPtr对象时发生Seg错误(简单操作:) delete pObj,但对象具有有效地址,例如 - 0x8fcbed8.

为什么删除带有效地址的指针会导致分段错误?
这可能是因为对象在应用程序的fork副本中创建并在main中销毁?

c++ fork memory-management poco shared-ptr

3
推荐指数
1
解决办法
1005
查看次数

Lua 更改当前/工作目录,Linux(没有 LFS 或任何非标准模块)

我需要更改 lua 脚本中的当前工作目录以执行特定操作,但是我在执行此简单任务时遇到了麻烦。我写测试脚本 test.lua :

os.execute("cd /usr")
os.execute("ls")
Run Code Online (Sandbox Code Playgroud)

但是 lua test.lua 输出是:

test.lua
Run Code Online (Sandbox Code Playgroud)

当前目录不会改变。怎么了?而且我不能使用 LFS 或任何非标准模块。


感谢所有人解释它的情况。我选择另一种方式:在运行 lua 脚本之前更改工作目录,但是我在脚本和脚本中使用的路径有很多麻烦。

lua dir

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