安装portmidi时,此链接错误是什么意思?

时间:2018-08-08 14:09:24

标签: c cmake

为portmidi配置cmake文件,并继续使用make制作必要的文件后,在编译过程中遇到了以下错误:

- Build files have been written to: /home/mycomputername

/Desktop/portmedia/portmidi
[  2%] Linking C shared library /Release/libpmjni.so
/usr/bin/x86_64-linux-gnu-ld: cannot open output file /Release/libpmjni.so: No such file or directory
collect2: error: ld returned 1 exit status
pm_common/CMakeFiles/pmjni.dir/build.make:251: recipe for target '/Release/libpmjni.so' failed
make[2]: *** [/Release/libpmjni.so] Error 1
CMakeFiles/Makefile2:87: recipe for target 'pm_common/CMakeFiles/pmjni.dir/all' failed
make[1]: *** [pm_common/CMakeFiles/pmjni.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

我很困惑。我试图将标志-fpic插入ccmake的cxx-flags部分中,并将默认的Java安装路径更改为无效。坦率地说,我认为这与执行顺序的混乱有关,但我不知道在哪里。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

显然,在ccmake配置中CMake指向的目录中有一些配置要做。我只是重新下载了文件并将其解压缩到新创建的portmedia目录中。另外,为确保您在制作pm_defaults时不会遇到任何麻烦,请参阅Nate's answer。引用:

  

显然,Makefile生成的ccmake之一被破坏了。我可以通过运行来解决问题

sed -i 's/pm_java\/pm_java/pm_java/' build.make
     

在以下位置的pm_java/CMakeFiles/pmdefaults_target.dir/子目录中   项目之后运行ccmake .(但在Ubuntu上)。 (sed   命令将所有出现的pm_java/pm_java替换为pm_java。)

     

一切都可以编译,我什至可以从   pmdefaults目录使用

Release