小编Pat*_* B.的帖子

CMAKE从父级继承定义

我在父CMakeLists.txt中写了一些定义我希望这些定义在项目的子目录中继承.所以,如果我有项目喜欢

root
  |- CMakeLists.txt
  |- A 
  |  |- CMakeLists.txt
  |- B 
     |- CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

我在根CMakeLists.txt中写的定义应该转到child.

怎么做 ?

cmake

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

中断的尾链

ARM Cortex M3中NVIC支持的Interrupts尾链是什么.

embedded arm interrupt

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

CMake:使用gcc正确链接系统库

我有一个依赖于数学库的静态libary mylib.

如果我首先将mylib与math连接,然后链接到我的可执行文件,它可以工作:

add_executable(myapp main.c)
target_link_libraries(mylib m)
target_link_libraries(myapp mylib)
Run Code Online (Sandbox Code Playgroud)

但是,如果我直接使用可执行文件进行链接,则在使用gcc时会失败(使用clang可以正常工作!)

add_executable(myapp main.c)
target_link_libraries(myapp m mylib)
Run Code Online (Sandbox Code Playgroud)

为什么这有什么不同?
我认为无论如何将库连接在一起是不可能的?

gcc cmake clang

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

如何查看特定文件类型的2个分支之间的更改代码行?

我想创建一个指标,显示两个版本之间每个"Bug"的"更改的代码行"(在我的例子中是git中的分支).

因为我们的应用程序有很多.swf文件,所以我不需要计算那些swf的文件,我只想计算java,xml等等.

是否有某种工具可以做到这一点?或者像git diff --stat特定文件类型的git命令?

git

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

非初始化的不同类型但具有相同名称的全局变量 - 奇怪的链接行为

首先,请帮助我找到一个更准确描述情况的更好的标题.我在调试真实世界(嵌入式)代码时创建了以下简要版本的问题.

请考虑以下文件代码t1.c:

#include <stdio.h>

int A;

void f() { printf("%d\n", A); }

extern void g();

void main(void)
{
    g(); A=1; g();
    A++;
    f();
}
Run Code Online (Sandbox Code Playgroud)

和代码t2.c:

#include <stdio.h>

double A;

void g()
{
    A += 1.0;
    printf("%f\n", A);
}
Run Code Online (Sandbox Code Playgroud)

现在编译并运行如下代码:

gcc -Wall t1.c t2.c -o t && ./t
Run Code Online (Sandbox Code Playgroud)

1.000000
2.000000
1
Run Code Online (Sandbox Code Playgroud)

请注意,这两个文件都包含一个A具有不同类型的全局变量调用.我期望链接错误,因为符号A存在多次.

当我初始化两个变量中的一个时,我实际上得到一个链接警告(对象大小在不同的.o中发生变化),当我初始化它们时,一个错误(多个定义).

我用gcc 4.7和4.4试过这个.

这是预期的行为吗?如果是这样,我可以做些什么来指示工具链(基于gcc)来警告它吗?

这是一个错误吗?

c gcc

5
推荐指数
1
解决办法
100
查看次数

为什么fileinput.input对象在超出范围时不会丢失?

在下面的代码中,我预计fileinput.input当我return在循环中间时,python正在释放,因为它超出了范围.但是,当再次调用我的函数fileinput告诉我

raise RuntimeError, "input() already active"
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

def func(inplace):
    for line in fileinput.input(sys.argv[1], inplace=inplace):
        [..]
        if condition:
             return True
        [..]

if func(False):
    func(True)
Run Code Online (Sandbox Code Playgroud)

在使用时我会期望这种行为,yield但在使用return 时不会.

我正在使用Python 2.7.3.

有没有办法强制重置fileinput?

编辑:

fileinput.close()在回来之前打电话有效.为什么没有隐含地完成?

编辑2:感谢@MatsLindh

更换

for line in fileinput.input(sys.argv[1], inplace=inplace):
Run Code Online (Sandbox Code Playgroud)

for line in fileinput.FileInput(sys.argv[1], inplace=inplace):
Run Code Online (Sandbox Code Playgroud)

做我想要的,因为它返回一个以定义的方式超出范围的对象.我认为那样fileinput.input()做,但没有.它正在使用全局实例.

python scope

5
推荐指数
1
解决办法
569
查看次数

GitHub 用户名更改(使用 noreply 作为提交的电子邮件)

看到GitHub有改名的功能,丢掉对我来说好像问题不大。然而,我意识到我一直在使用我的旧名字@users.noreply.github.com 来提交和一切。因此,那封旧电子邮件将我之前的所有提交链接在一起。有没有办法解决这个问题?

我一直在想,也许我可以用我以前的名字创建一个帐户,让感兴趣的人通过该链接?在这种情况下,重新定位 repo 或类似的东西不太适用,因为我已经向其他存储库贡献了代码,所以我的旧提交仍然在那里未完成,没有名称或电子邮件来链接帐户。

我一直在想的另一种方法是把我的名字改回来,但我想这是最后的手段。这有点不幸,但我想由于 Git 的工作方式,它必须如此。(我现在已切换到我的 gmail 电子邮件,以防将来发生这种情况)

git account rename github

5
推荐指数
1
解决办法
1230
查看次数

如何使用具有独立读写指针的StringIO?

在我的 Python 程序中,在一个线程中,我不断地从嵌入式设备异步获取原始字节缓冲区(实际上是日志输出)。转换后,它是一个包含换行符的ascii字符串。

在同一个程序中,我想不时地将其作为主线程中的行来使用。

我选择io.StringIO这个是因为换行符到行的分割并且具有漂亮的readline界面。

在我的线程中,我正在调用write()StringIO 对象,并且主线程希望不时地消耗行(通过readline()

但是,StringIO 类并不充当 FIFO 或 Ringbuffer。它没有单独的读和写指针。

在 readline() 之前,我必须将文件点移回最后读取的位置,并在完成后移回末尾,以便写入正确附加。

考虑到并发访问等,我可以使用该接口编写自己的字符串行环缓冲区。但这实际上是一项艰巨的任务,我想知道是否已经满足我的需求。

python string python-3.x

5
推荐指数
1
解决办法
610
查看次数

Qt3D:为 Qt3DRender::QGeometryRenderer::Lines 设置线宽

我不确定如何在 Qt3D 中设置线宽。

我知道Qt3DRender::QRenderStateSetQLineWidth,但如何在以下 MWE 中使用它们(来自此处):

#include <QGuiApplication>
#include <Qt3DCore/QEntity>
#include <Qt3DCore/QTransform>
#include <Qt3DExtras/Qt3DWindow>
#include <Qt3DExtras/QSphereMesh>
#include <Qt3DExtras/QPhongMaterial>
#include <Qt3DExtras/QFirstPersonCameraController>
#include <Qt3DExtras/QDiffuseSpecularMaterial>
#include <Qt3DRender/QCamera>
#include <Qt3DRender/QBuffer>
#include <Qt3DRender/QAttribute>

Qt3DCore::QEntity *createEntityBox(const QVector3D &min,
                                   const QVector3D &max,
                                   const QColor &color,
                                   Qt3DCore::QEntity *parent)
{
    auto geometry = new Qt3DRender::QGeometry;

    QByteArray bufferBytes;
    bufferBytes.resize(3 * 8 * sizeof(float));
    float *positions = reinterpret_cast<float*>(bufferBytes.data());
    *positions++ = min.x(); *positions++ = min.y(); *positions++ = min.z();
    *positions++ = max.x(); *positions++ = min.y(); *positions++ = …
Run Code Online (Sandbox Code Playgroud)

c++ qt qt3d

5
推荐指数
0
解决办法
547
查看次数

如何使增强螺纹自毁?(C++)

我有一个类,有一些功能,如:

void workerFunc(int ClassVariable)  
{  
    boost::posix_time::seconds workTime(classVariableA);  

    std::cout << "Worker: running" << std::endl;  

    // Pretend to do something useful...  
    boost::this_thread::sleep(workTime);  


    std::cout << ClassVariable << std::endl;  
    std::cout << "Worker: finished" << std::endl;  
}  
Run Code Online (Sandbox Code Playgroud)

我希望在线程中.以及我想要工作的其他一些功能

while(1)
{
 boost::thread workerThread(workerFunc(ClassVariableB));  
}
Run Code Online (Sandbox Code Playgroud)

所以每次都可以创建线程.但我需要的是该线程在完成后自动销毁.怎么办这样的事情?

c++ multithreading boost class function

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

标签 统计

c++ ×2

cmake ×2

gcc ×2

git ×2

python ×2

account ×1

arm ×1

boost ×1

c ×1

clang ×1

class ×1

embedded ×1

function ×1

github ×1

interrupt ×1

multithreading ×1

python-3.x ×1

qt ×1

qt3d ×1

rename ×1

scope ×1

string ×1