小编arr*_*owd的帖子

如何编译内核模块

我正在尝试按照本指南编译一个简单的hello world模块,我对Makefile实际上在做什么感到困惑.

obj-m += hello-1.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Run Code Online (Sandbox Code Playgroud)

据我所知,当我输入make命令时,它将运行运行的all配方make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules.所以现在它运行在-C标志后给出的路径上找到的Makefile,但它做了M=$(PWD) modules什么?

c makefile linux-device-driver linux-kernel

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

为什么ParsecT类型有'你'的说法?

parsec包的文档声明该 u参数用于通过monadic计算来携带一些用户状态.但是通过ParsecTStatemonad 上建立monad 变换器可以实现相同的功能.因此,如果我的解析器不是有状态的,我不需要u完全,但必须将其设置为()parsec.添加非可选状态支持的理由是什么ParsecT

haskell parsec state-monad monad-transformers

8
推荐指数
1
解决办法
317
查看次数

在数据库插入之前验证xlsx文件的正确方法

在玩PHPExcel时,我遇到了一些问题,如何正确处理验证/并将值插入数据库.我不需要任何代码,只需要一般的概念如何做.

首先,我遍历第一行以检查列是否与给定的列匹配(如果它适合模式).

在下一步,我得到行,同时它的beeing验证行/列明智.如果类型不匹配,我将收到错误.

在验证行时,我需要获取Worker名称并将其转换为id get_worker_id().

问题编号#1. 这样的解决方案是一个好习惯吗 它将产生多达100个查询.前行 - 1.

问题编号#2 我还需要再次验证行,我会使用worker_id,F和G列来检查数据库中是否存在这样的记录.我只是简单介绍一个类似的函数,get_worker_id()但如果条目存在则会返回true/false.

但这又是正确的做法吗?通过原始计算,我的方法将产生100个选择(get_worker_id),100个选择(验证是否存在),100个插入(如果一切正常).

我不确定我是否正确地做到了.你能给我一些建议吗?

谢谢前锋.

用于处理xlsx文件的模型.

class Gratyfikant_model extends CI_Model {

    private $_limit = 100;

    const columns = array(
        'A' => "Z",
        'B' => "KS",
        'C' => "G",
        'D' => "S",
        'E' => "Numer",
        'F' => "Miesi?c", // required
        'G' => "Data wyp?aty", // required
        'H' => "Pracownik", // required
        'I' => "Brutto du?e", // required
        'J' => "ZUS pracownik", // required
        'K' => "ZUS pracodawca", // …
Run Code Online (Sandbox Code Playgroud)

php mysql phpexcel

8
推荐指数
1
解决办法
182
查看次数

浮点SMT逻辑是否比实际慢?

我在Haskell中编写了一个应用程序,它调用Z3求解器来解决一些复杂公式的约束.感谢Haskell,我可以快速切换我正在使用的数据类型.

当使用SBV的AlgReal类型进行计算时,我得到的结果是合理的时间,但是切换到FloatDouble类型会使Z3消耗~2Gb的RAM,甚至在30分钟内也不会产生.

这是否期望产生浮点解决方案需要更多时间,或者我的方面有些错误?

haskell smt z3 sbv

8
推荐指数
1
解决办法
155
查看次数

是否有任何明确的入门级文档可用于boost-spirit?

我试图浏览Boost Spirit页面上的官方文档,但我发现它完全无法理解(尽管有超过25年的编程经验和英语语言学位) - 它显然是由一个对系统了解得很好的人(好)但假设读者也很了解系统(坏).我需要一些不会像这样的句子

精神中的解析器和发电机完全归功于它

显然是"归属"的含义,我不知道,网络搜索没有帮助.要么

序列需要属性类型来公开融合序列的概念,其中该融合序列的所有元素必须与组件序列的相应元素兼容

什么是融合序列?我所知道的唯一一个发生在太阳下.如何在C++中"揭露"一个"概念"?

从初学者的角度来看,是否有任何好的教程描述了Boost Spirit?

c++ documentation boost-spirit

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

llvm clang编译器的dynamic_cast失败

我看到一个奇怪的失败,dynamic_castNULL在clang编译器上返回.但是相同的代码正在使用gcc环境.

你能指点我可能是根本原因吗?dynamic_castllvm和gcc 之间有什么区别?

我正在使用编译器的默认行为,我认为默认情况下启用RTTI.

template<typename T> T* 
find_msg_of_type(
    MsgList *list
) {
    T* msg = NULL;

    if (list) {
        for (std::vector<MsgList*>::iterator it = list->element.begin();
                                                        it != list->element.end();
                                                        it++) {// MsgList can be list of objects build with GSoap.
            if (typeid(*(*it)) == typeid(T)) {
                msg = dynamic_cast<T*>(*it); // Failing on clang but this same code is working with gcc compiler.
                break;
            }
        }
    }

    return msg;
}
Run Code Online (Sandbox Code Playgroud)

还有一个观察:用gcc

if (typeid(*(*it)) == typeid(T))
Run Code Online (Sandbox Code Playgroud)

正如预期的那样完美地工作但是有铿锵声

if (typeid(*(*it)) …
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-cast compilation llvm clang

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

无法构建开放资产导入库(Assimp)

我刚刚下载了Open Asset Import Library(Assimp),这是一个用于将.3DS和.Obj等3D文件格式导入源代码的API.这样做可以更容易地使用openGL渲染网格.

问题是,我无法建立图书馆.它有关于如何构建它以及连接到编译器(如XCode(我正在使用))的非常模糊和含糊的指示.它说我应该使用一个名为CMake的程序来构建库.我已经下载了CMake并尝试使用它,但它还没有为我工作.

有没有人在这里使用CMake或其他工具成功构建和安装Assimp?

opengl import build cmake shared-libraries

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

clang,openMP和CMake

我使用cmake构建一个简单的openMP代码时遇到问题.

我已经安装了clang-omp,我可以编译程序 clang-omp -fopenmp filename.c

我已经尝试了很多制作CMakeLists.txt文件,没有结果!在我包含的文件中:

FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
message("OPENMP FOUND")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
Run Code Online (Sandbox Code Playgroud)

我试过告诉CMake通过调用来使用该编译器

CC=clang-omp CXX=clang-omp++ cmake 
Run Code Online (Sandbox Code Playgroud)

没有.

两种情况的结果如下

-- Try OpenMP C flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP …
Run Code Online (Sandbox Code Playgroud)

cmake openmp clang

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

CMake"无法运行MSBUILD.exe"命令错误

当我想创建visual studio 15(2017)为opencv 3.3.0制作文件时,它给了我这个错误信息:error in configuration process, project files maybe invalid这些:

CMake Deprecation Warning at CMakeLists.txt:81 (cmake_policy):
  The OLD behavior for policy CMP0020 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


CMake Deprecation …
Run Code Online (Sandbox Code Playgroud)

configuration cmake visual-studio opencv3.0

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

多态函数的参照透明性

考虑这种实施 on

on f g = curry $ (. bimap g g) $ uncurry f
Run Code Online (Sandbox Code Playgroud)

它是什么类型?GHC会说(b -> b -> c) -> (a -> b) -> a -> a -> c,这是一个很好的猜测。但是它错过了实例on (+) toInteger。让我们尝试修复程序(使用RankNTypesKindSignaturesAllowAmbiguousTypesConstraintKinds):

on :: forall (co :: * -> Constraint) a1 a2 b c . 
      (co a1, co a2) => 
      (b -> b -> c) 
   -> (forall a . co a => a -> b)
   -> a1 -> …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass rank-n-types

7
推荐指数
0
解决办法
89
查看次数