小编Dav*_*d Z的帖子

如何告诉CMake链接到源目录中的静态库?

我有一个带有Makefile的小项目,我试图转换为CMake,主要是为了获得CMake的经验.出于此示例的目的,项目包含一个源文件(C++,虽然我认为该语言不是特别相关)和一个我从其他地方复制过的静态库文件.为了论证,假设库的源代码不可用; 我只有.a文件和相应的标题.

我手工制作的Makefile包含以下构建规则:

main: main.o libbingitup.a
    g++ -o main main.o libbingitup.a
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.我如何告诉CMake重现这个?当然,这不是字面上的精确makefile,而是包含等效链接命令的东西.我尝试过明显但天真的方式,比如

add_executable(main main.cpp libbingitup.a)
Run Code Online (Sandbox Code Playgroud)

要么

add_executable(main main.cpp)
target_link_libraries(main libbingitup.a)
Run Code Online (Sandbox Code Playgroud)

以及与各种事物link_directories(.)add_library(bingitup STATIC IMPORTED)等,但没有到目前为止,结果在一个成功的连锁.我该怎么办?


版本详细信息:Linux(Kubuntu 12.04)上的CMake 2.8.7和GCC 4.6.3

cmake static-libraries

74
推荐指数
3
解决办法
15万
查看次数

如何在保留总和的同时将浮点数舍入为整数?

假设我有一个浮点数数组,按排序(让我们说升序)排序,其总和已知是一个整数N.我希望将这些数字"舍入"为整数,同时保持其总和不变.换句话说,我正在寻找一种算法,将浮点数数组(称之为 fn)转换为整数数组(称之为in),这样:

  1. 两个数组的长度相同
  2. 整数数组的总和是 N
  3. 每个浮点数fn[i]与其对应的整数之间的差值in[i]小于1(或者如果你真的必须等于1)
  4. 假设浮点数按排序顺序(fn[i] <= fn[i+1]),整数也将按排序顺序(in[i] <= in[i+1])

鉴于满足这四个条件,sum((in[i] - fn[i])^2)最好将舍入方差()最小化的算法,但这并不是什么大问题.

例子:

[0.02, 0.03, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14]
    => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
[0.1, 0.3, 0.4, 0.4, 0.8]
    => [0, 0, 0, 1, 1]
[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
    => [0, 0, 0, …

language-agnostic algorithm rounding

51
推荐指数
4
解决办法
9717
查看次数

在SQLAlchemy/Elixir中选择不同的列值

在我使用SQLAlchemy和Elixir编写的一个小脚本中,我需要获取特定列的所有不同值.在普通的SQL中,它只是一个简单的问题

SELECT DISTINCT `column` FROM `table`;
Run Code Online (Sandbox Code Playgroud)

我知道我可以"手动"运行该查询,但如果可以,我宁愿坚持使用SQLAlchemy声明性语法(和/或Elixir).我确信它一定是可能的,我甚至在SQLAlchemy文档中看到过这种类似的暗示,但我一直在寻找这些文档几个小时(以及Elixir的文档),我就是不能似乎真的弄清楚它将如何完成.那我错过了什么?

python sql sqlalchemy python-elixir

44
推荐指数
4
解决办法
6万
查看次数

通过ArrayList反向迭代会产生IndexOutOfBoundsException

当我反复遍历ArrayList时,我得到一个IndexOutOfBoundsException.我尝试进行前向迭代,没有问题.我希望并知道列表中有五个元素.代码如下:

Collection rtns = absRtnMap.values();
List list = new ArrayList(rtns);
Collections.sort(list);

for(int j=list.size();j>0;j=j-1){
  System.out.println(list.get(j));
}
Run Code Online (Sandbox Code Playgroud)

前向迭代 - 工作正常,但对我没用:

for(int j=0;j<list.size();j++){
    System.out.println(list.isEmpty());
    System.out.println(list.get(j));
} // this worked fine
Run Code Online (Sandbox Code Playgroud)

错误:

Exception in thread "Timer-0" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at model.Return.getReturnMap(Return.java:61)
    at controller.Poller$1.run(Poller.java:29)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

此外,如果有人知道反向迭代更好的习语,我很乐意尝试这一点.

java iteration reverse arraylist

31
推荐指数
5
解决办法
7万
查看次数

"SSLError:[SSL] PEM库(_ssl.c:2532)"是什么意思使用Python ssl库?

我正在尝试使用Python 3 asyncio模块连接到另一方并获得此错误:

     36     sslcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
---> 37     sslcontext.load_cert_chain(cert, keyfile=ca_cert)
     38

SSLError: [SSL] PEM lib (_ssl.c:2532)
Run Code Online (Sandbox Code Playgroud)

问题是错误的意思.我的证书是正确的,密钥文件(CA证书)可能不正确.

python ssl ssl-certificate python-3.x python-asyncio

29
推荐指数
3
解决办法
5万
查看次数

在numpy中识别数字和数组类型

numpy中是否存在一个函数,告诉我一个值是数值类型还是numpy数组?我正在编写一些数据处理代码,需要处理几种不同表示中的数字("数字"我指的是数字量的任何表示,可以使用标准算术运算符来操作,+, - ,*,/,**).

我正在寻找的行为的一些例子

>>> is_numeric(5)
True
>>> is_numeric(123.345)
True
>>> is_numeric('123.345')
False
>>> is_numeric(decimal.Decimal('123.345'))
True
>>> is_numeric(True)
False
>>> is_numeric([1, 2, 3])
False
>>> is_numeric([1, '2', 3])
False
>>> a = numpy.array([1, 2.3, 4.5, 6.7, 8.9])
>>> is_numeric(a)
True
>>> is_numeric(a[0])
True
>>> is_numeric(a[1])
True
>>> is_numeric(numpy.array([numpy.array([1]), numpy.array([2])])
True
>>> is_numeric(numpy.array(['1'])
False
Run Code Online (Sandbox Code Playgroud)

如果不存在这样的函数,我知道编写一个函数应该不难

isinstance(n, (int, float, decimal.Decimal, numpy.number, numpy.ndarray))
Run Code Online (Sandbox Code Playgroud)

但是我应该在列表中包含其他数字类型吗?

python numpy

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

无法推送到git存储库

我在推送时不断从git收到此错误消息,即使我在翻过来之后尝试它:

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[repo url]'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

以下是分支历史记录的样子:

A---B---C
  |   |
  D   E-F

A initial commit (me)
B some commit (me)
C master
D some commit (other dev)
E remotes/origin/master - Merge branch 'master' of [repo url]
F Local …
Run Code Online (Sandbox Code Playgroud)

git

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

为什么GDB评估浮点运算不同于C++?

在尝试处理浮点运算问题时,我遇到了一些有点混乱的问题.

一,代码.我已经将我的问题的本质提炼到这个例子中:

#include <iostream>
#include <iomanip>

using namespace std;
typedef union {long long ll; double d;} bindouble;

int main(int argc, char** argv) {
    bindouble y, z, tau, xinum, xiden;
    y.d = 1.0d;
    z.ll = 0x3fc5f8e2f0686eee; // double 0.17165791262311053
    tau.ll = 0x3fab51c5e0bf9ef7; // double 0.053358253178712838
    // xinum = double 0.16249854626123722 (0x3fc4ccc09aeb769a)
    xinum.d = y.d * (z.d - tau.d) - tau.d * (z.d - 1);
    // xiden = double 0.16249854626123725 (0x3fc4ccc09aeb769b)
    xiden.d = z.d * (1 - tau.d);
    cout << hex << …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point gdb floating-accuracy

16
推荐指数
2
解决办法
848
查看次数

Python:更喜欢几个小模块还是一个更大的模块?

我的工作中,我有一个非常服务特定功能的一些小模块Python的Web应用程序:session.py,logger.py,database.py,等,并通过"小"我真的不意味着小; 这些文件中的每一个目前包括大约3-5行代码,或者最多可能包含10行代码.我可能有一些导入和一个类定义或两个.我想知道,有什么理由我应该或不应该将这些合并到一个模块中,类似于misc.py什么?

我的想法是,拥有单独的模块有助于代码清晰度,稍后,如果这些模块有可能增长到超过10行,我将不会感到如此糟糕.但另一方面,拥有一堆只有几行的文件似乎是一种浪费!并且多文件与单文件方法之间的资源使用有任何显着差异吗?(当然,我远远不能担心资源使用问题,但我忍不住要求......)

我查看过是否曾经问过这个问题,并没有看到任何特定于Python的内容,但如果它实际上是重复的,我会很感激被指向正确的方向.

python refactoring module

15
推荐指数
2
解决办法
1887
查看次数

从另一级别的文件夹导入类

我有这样的python应用程序

/
/crawl.py
/crawl/__init__.py
/crawl/john.py
/tests/test_john.py
Run Code Online (Sandbox Code Playgroud)

我想要做的是运行test_john.py需要使用的单元测试,john.py但它在另一个文件夹中.

在我tests/test_john.py运行时,我得到了这个

Traceback (most recent call last):
  File "test_john.py", line 2, in <module>
    from john import John
ImportError: No module named john
Run Code Online (Sandbox Code Playgroud)

那么如何从爬网文件夹中导入一个类....

python import

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