Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake:不使用/usr/lib64/libXmu.so_Cmake_Geant4 - Fatal编程技术网

CMake:不使用/usr/lib64/libXmu.so

CMake:不使用/usr/lib64/libXmu.so,cmake,geant4,Cmake,Geant4,我是CMake和Geant4的新手。我正在尝试使用它们构建一个项目。 另外,我在一个远程集群中工作。当Icmake时,没有错误。但是当我做make时,我得到的错误是 make[2]: *** No rule to make target '/usr/lib64/libXmu.so', needed by 'PRO_simulation'. Stop. make[1]: *** [CMakeFiles/PRO_simulation.dir/all] Error 2 make: *** [all]

我是CMake和Geant4的新手。我正在尝试使用它们构建一个项目。 另外,我在一个远程集群中工作。当I
cmake
时,没有错误。但是当我做
make
时,我得到的错误是

make[2]: *** No rule to make target '/usr/lib64/libXmu.so', needed by 'PRO_simulation'.  Stop.
make[1]: *** [CMakeFiles/PRO_simulation.dir/all] Error 2
make: *** [all] Error 2
但是,

ls -rt /usr/lib64/libXmu*
给出:

lrwxrwxrwx. 1 root root     15 Jan 11  2016 /usr/lib64/libXmu.so.6 -> libXmu.so.6.2.0
-rwxr-xr-x. 1 root root 109552 Nov 20  2015 /usr/lib64/libXmu.so.6.2.0
lrwxrwxrwx. 1 root root     16 Jan 11  2016 /usr/lib64/libXmuu.so.1 -> libXmuu.so.1.0.0
-rwxr-xr-x. 1 root root  19440 Nov 20  2015 /usr/lib64/libXmuu.so.1.0.0
由于它是一个远程集群,所以我无法创建名为“libXmu.so”的链接(请求集群授权后,仍然没有任何用处),但我可以创建到本地目录的链接


现在我的问题是,我应该在cmake中做些什么,这样,它将在我的本地目录中查找
libXmu.so
,而不是
/usr/lib64/libXmu.so

首先,这是一个黑客攻击,决不是一个正确的解决方案,但您可以直接链接到
。因此
文件:

  • 打开CMakeLists.txt并删除所有目标的
    target\u link\u库中对libXmu linking的所有引用
  • /home/user/path/to/libXmu.so
    添加到cmake CXX或链接标志。有关如何执行此操作的更多信息,请参见:或:
  • 我建议您首先尝试以下方法:

    export CFLAGS=/home/user/path/to/libXmu.so
    export CXXFLAGS=/home/user/path/to/libXmu.so
    
    在运行cmake之前。如果失败,请打开CMakeLists.txt并尝试查找额外的
    CFLAGS
    cxflags
    的定义位置,并将路径添加到libXmu.so

    您可以做的另一件事是运行
    make VERBOSE=1
    ,它将显示发出的确切gcc/g++命令,在文本编辑器中复制它,并用
    /home/user/path/to/libXmu替换
    -lxmu


    我希望其中至少有一个能起作用。

    首先,这是一个黑客攻击,绝对不是一个合适的解决方案,但您可以直接链接到
    。因此
    文件:

  • 打开CMakeLists.txt并删除所有目标的
    target\u link\u库中对libXmu linking的所有引用
  • /home/user/path/to/libXmu.so
    添加到cmake CXX或链接标志。有关如何执行此操作的更多信息,请参见:或:
  • 我建议您首先尝试以下方法:

    export CFLAGS=/home/user/path/to/libXmu.so
    export CXXFLAGS=/home/user/path/to/libXmu.so
    
    在运行cmake之前。如果失败,请打开CMakeLists.txt并尝试查找额外的
    CFLAGS
    cxflags
    的定义位置,并将路径添加到libXmu.so

    您可以做的另一件事是运行
    make VERBOSE=1
    ,它将显示发出的确切gcc/g++命令,在文本编辑器中复制它,并用
    /home/user/path/to/libXmu替换
    -lxmu


    我希望至少有一个这样的作品。

    如果你做了
    LD\u LIBRARY\u PATH=/home/local:$LD\u LIBRARY\u PATH
    cmake.`那没用。对不起,我现在编辑了这个问题。当我做
    cmake
    时,没有问题。在此之后,当我执行
    make
    时,会发生错误。有一个名为
    build.make
    的文件,其中有一行
    /usr/lib64/linXmu.so
    。这就是为什么
    make
    正在查看该特定路径。如果您执行
    LD\u LIBRARY\u path=/home/local:$LD\u LIBRARY\u path
    cmake..`这没有帮助吗。对不起,我现在编辑了这个问题。当我做
    cmake
    时,没有问题。在此之后,当我执行
    make
    时,会发生错误。有一个名为
    build.make
    的文件,其中有一行
    /usr/lib64/linXmu.so
    。这就是为什么
    make
    正在查看该特定路径的原因。