在为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
我很困惑。我试图在ccmake的cxx flags部分插入flags-fpic,并将默认的java安装路径更改为无效。坦率地说,我认为这与扰乱执行秩序有关,但我不知道在哪里。
任何帮助都将不胜感激。
最佳答案
显然,CMake在ccmake配置中指向的目录中有一些配置要做。我只是重新下载了这些文件,并将其解压缩到一个新创建的portmedia目录中。另外,要确保在设置pm_默认值时不会出现任何问题,请参阅Nate's answer。引用:
显然,Makefile
产生的ccmake
s中有一个被破坏了。我可以通过运行
sed -i 's/pm_java\/pm_java/pm_java/' build.make
在
运行
pm_java/CMakeFiles/pmdefaults_target.dir/
后的项目(不过,在Ubuntu上)。(ccmake .
命令将所有出现的
sed
替换为pm_java/pm_java
)一切都可以编译,我甚至可以从
pm_java
目录使用java -Djava.library.path=. -jar pmdefaults.jar