首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SimpleITK 3的CMake构建CMake

用SimpleITK 3的CMake构建CMake
EN

Stack Overflow用户
提问于 2014-06-14 10:52:22
回答 2查看 1.6K关注 0票数 3

我想从源代码构建SimpleITK,并为Python3.4安装它(在Ubuntu14.04上)。

我跟踪了SimpleITK构建指令

代码语言:javascript
复制
git clone http://itk.org/SimpleITK.git
mkdir SimpleITK-build
cd SimpleITK-build
cmake ../SimpleITK/SuperBuild

而且效果很好。我能够使用SimpleITK为Python2.7安装sudo python setup.py install。然后,我尝试使用sudo python3.4 setup.py install为Python3.4安装它,尽管它的安装似乎是正确的,但是当我试图在Python3中导入SimpleITK时,我得到了:

代码语言:javascript
复制
...    
    File "/usr/lib/python3.4/imp.py", line 243, in load_module
        return load_dynamic(name, filename, file)
ImportError: dynamic module does not define init function (PyInit__SimpleITK)

在上面的构建说明中,它说:

验证和/或将高级cmake变量更正为特定于语言的可执行文件、库和包含目录。例如,如果有多个Python安装,请确保所有相关的Python变量都引用相同的版本。

我没有这样做,我怀疑这就是为什么它只适用于Python2.7。如何纠正“高级cmake变量”?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-19 04:45:42

下面是我在Linux上使用的所有步骤(构建耀因的答案和官方文件)。

获取SimpleITK源代码

代码语言:javascript
复制
cd ~
git clone --recursive http://itk.org/SimpleITK.git

设置最新稳定版本

代码语言:javascript
复制
cd ~/SimpleITK
git tag

查找最新的稳定版本(对我来说是"v0.8.0"),然后通过

代码语言:javascript
复制
git checkout v0.8.0

别担心关于“超然”的警告。

构建SimpleITK

代码语言:javascript
复制
cd ~
mkdir SimpleITK-build
cd SimpleITK-build

这里我使用了CMake图形用户界面(在Ubuntu上,用sudo apt-get install cmake-qt-gui获取它),

代码语言:javascript
复制
cmake-gui ../SimpleITK/SuperBuild/

这将打开一个GUI,您可以在其中编辑cmake变量。单击Configure按钮并在弹出的对话框上单击Finish,然后启用Advanced。更改所有相关的Python变量:

(我不知道为什么有些路径在结尾处有“m”,但您可以阅读更多关于它的这里)。

如果要关闭Java或任何其他语言,请向下滚动并禁用WRAP_JAVA。再次按Configure (不确定这是否必要),然后按Generate。关闭CMake图形用户界面,返回到您的终端并输入

代码语言:javascript
复制
make

至少要花一个小时。

现在将这一行添加到.bashrc文件中

代码语言:javascript
复制
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/SimpleITK-build/lib

安装在Python上

我使用checkinstall干净地管理安装,

代码语言:javascript
复制
cd ~
sudo checkinstall --pkgname python3-simpleitk  python3.4 \
~/SimpleITK-build/SimpleITK-build/Wrapping/PythonPackage/setup.py install
票数 6
EN

Stack Overflow用户

发布于 2014-06-17 07:18:35

我会首先检查最新的标签版本,它很难知道什么在回购在任何特定的时间,如果你不是在一个标记的分支。使用git标记查看哪些是可用的,然后执行以下操作:

代码语言:javascript
复制
git checkout v0.8.0

要优化正确的证书,您可能应该做ccmake而不是cmake。然后进行两次配置(c),然后生成(g)。如果您不打算使用java、tcl和R,您可能会禁用它们。检查您的python库并包含匹配的python3.4 (PYTHON_INCLUDE_DIR、PYTHON_LIBRARY、PYTHON_EXECUTABLE,使用't‘查看高级选项)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24219159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档