小编RBI*_*RBI的帖子

未定义引用`JNI_CreateJavaVM'linux

我正在尝试熟悉JNI API,但无法获得要编译的示例c ++程序.

这是我用来编译的命令,下面是我正在尝试编译的程序.我得到的错误是:

/tmp/cczyqqyL.o: In function `main':
/home/nc/Desktop/jni/simple/ctojava/callJava.cpp:16: undefined reference to `JNI_CreateJavaVM'
Run Code Online (Sandbox Code Playgroud)

编译:

g++ -g -I/usr/lib/jvm/java-7-oracle/include/ -I/usr/lib/jvm/java-7-oracle/include/linux/ -L/usr/bin/java -L/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/ -ljvm callJava.cpp
Run Code Online (Sandbox Code Playgroud)

C++:

#include <jni.h> /* where everything is defined */

int main(){
    JavaVM *jvm; /* denotes a Java VM */
    JNIEnv *env; /* pointer to native method interface */

   JavaVMInitArgs vm_args;
   JavaVMOption options[1];
   options[0].optionString = "-Djava.class.path=/home/nc/Desktop/jni/simple/ctojava/";
   vm_args.version = JNI_VERSION_1_6;
   vm_args.options = options;
   vm_args.nOptions = 1;
   vm_args.ignoreUnrecognized = JNI_FALSE;

   /* Create the Java VM */
   int res = JNI_CreateJavaVM(&jvm, (void …
Run Code Online (Sandbox Code Playgroud)

c++ java-native-interface

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

未定义的对"JNI_CreateJavaVM"窗口的引用

我正在尝试熟悉JNI API,但无法获得要编译的示例c ++程序.我得到了相同的样本来编译并在linux中运行(在下面的链接中发布问题后)但是无法在windows中编译它; 我正在使用mingw g ++.我已经将所有包含路径更改为Windows路径,并且jni.h位于编译时,而不是jvm.dll.

未定义引用`JNI_CreateJavaVM'linux

这是我尝试用来编译的命令:

g++ -g -I"C:\Program Files (x86)\Java\jdk1.7.0_21\include" -I"C:\Program Files (x86)\Java\jdk1.7.0_21\include\win32" -L"C:\Program Files (x86)\Java\jdk1.7.0_21\jre\bin\server" callJava.cpp -ljvm
Run Code Online (Sandbox Code Playgroud)

和...

**same as above with the additional** : -L"C:\Program Files (x86)\Java\jdk1.7.0_21\lib"
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

undefined reference to `_imp__JNI_CreateJavaVM@12'
Run Code Online (Sandbox Code Playgroud)

和正在编译的cpp:

#include <jni.h>

int main(){

    //firstTest();
    JavaVM *jvm;
    JNIEnv *env;

    JavaVMInitArgs vm_args;
    JavaVMOption options[1];
    options[0].optionString = "-Djava.class.path=C:/Users/Ron/Dropbox/jni/simple/ctojava/win";
    vm_args.version = JNI_VERSION_1_6;
    vm_args.options = options;
    vm_args.nOptions = 1;
    vm_args.ignoreUnrecognized = JNI_FALSE;

    int res = JNI_CreateJavaVM(&jvm, (void **)&env, &vm_args);

    jclass cls = env->FindClass("Hello");
    jmethodID mid = …
Run Code Online (Sandbox Code Playgroud)

c++ windows java-native-interface

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

停止录制而不停止其余脚本

我正在玩使用Google语音文本API的脚本。该api需要flac编码的文件,因此脚本的记录部分如下所示:

arecord -q -t wav -d 0 -f S16_LE -r 16000 | flac - -f --best --sample-rate 16000 -s -o "$TEMP_FILE"
Run Code Online (Sandbox Code Playgroud)

该命令将一直记录,直到用户使用ctrl-c退出,并且应将wav记录的格式以flac格式通过管道传送到flac程序以输出,然后该脚本应继续。

我遇到的问题是,按ctrl-c会完全结束脚本,并切断某些音频(flac文件仍会输出)。如果我在不使用管道的情况下运行脚本:

arecord -q -t wav -d 0 -f S16_LE -r 16000 some.wav
Run Code Online (Sandbox Code Playgroud)

然后按ctrl-c只会结束录制,并继续执行脚本。

如何解决此问题,以便ctrl-c仅停止arecord命令并允许脚本的其余部分(包括管道flac编码)完成?

bash

5
推荐指数
1
解决办法
4744
查看次数

采用课程目标c时"找不到......的协议声明"

目前,我对Objective-c中的自定义委托流程感到有点沮丧.我已经使用过几次设计模式,对它的工作方式有了很好的理解.我在互联网上搜索了2个小时试图找到我在这种情况下做错了什么,并且没有占上风.我还比较了我过去使用的正常运行的自定义委托与此实例的比较,并且看不出任何概念上的差异.所以我们走了:

我正在制作一个自定义的双表视图(一个表用于列表,另一个用于保存从该列表中进行的选择.)以便用户可以进行基本选择.这是头文件:

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>


@protocol ListSelectorViewDelegate

-(void) listTableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
-(void) selectTableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

-(void) listTableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath;
-(void) selectTableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath;

- (void)listTableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)selectTableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

@end


@protocol ListSelectorDataSource

-(UITableViewCell *)listTableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
-(UITableViewCell *)selectTableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

-(NSArray *)sectionIndexTitlesForListTableView:(UITableView *)tableView editStatus:(BOOL) status;
-(NSArray *)sectionIndexTitlesForSelectTableView:(UITableView *)tableView editStatus:(BOOL) status;

-(NSInteger)listTableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;
-(NSInteger)selectTableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;

@end

@interface ListSelectorViewController : UIViewController …
Run Code Online (Sandbox Code Playgroud)

delegates protocols objective-c

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

试图修复此错误:无法找到映射图像UIPickerViewFrameLeft-162-Popover.png

我正在尝试以编程方式创建一个uiPickerView并将其添加到视图中而不使用界面构建器.不要误会我的意思,我喜欢IB,但我想这样做的原因是因为我正在尝试构建一个对象,我可以使用UIPopoverViewController和各种不同的子视图快速插入以生成弹出菜单(例如uiPickerView)作为弹出窗口中的菜单.我已经通过在IB中构建菜单并使用其ViewController初始化弹出窗口来完成这项工作,所以我知道这在大多数情况下是如何工作的.

我已输入下面的相关代码,这是我运行时遇到的两个错误: - "无法找到映射图像UIPickerViewFrameRight-162-Popover.png" - "找不到映射图像UIPickerViewFrameLeft-162-Popover.png "

我不知道这些图像是什么,但我认为它们是选择器视图的png.

menu = [[UIPickerView alloc]initWithFrame:CGRectMake(0,100,162,162)];
  menu.delegate = self;
  menu.dataSource = self;

  [menu reloadAllComponents];
  [menu selectRow:0 inComponent:0 animated:YES];

  //Add the picker to the view
  [customViewController.view addSubview:menu];

  popView = [[UIPopoverController alloc] initWithContentViewController:customViewController] ;
  [popView setDelegate:self];
  CGRect pos = [rootView frame];
  [popView presentPopoverFromRect:CGRectMake(pos.origin.x,pos.origin.y,0,pos.size.height) 
         inView:displayView permittedArrowDirections:arrowDir animated:YES];
Run Code Online (Sandbox Code Playgroud)

现在这个代码会崩溃程序,除非你删除我尝试将选择器添加到视图的行,此时我只得到空白的弹出窗口.所以我知道这是导致这个问题的选择器,但是我不知道如何修复它.我一整天都在搜索,但是每个关于uipickers的在线教程都包括使用IB.我的猜测是,这是一个非常愚蠢的错误,比如错过导入或者其他什么,但如果有人能告诉我我做错了什么,我将不胜感激.

另请注意,我按照教程了解如何为UIPickerView设置dataSource和委托方法,我很确定它们没问题但是如果你想在这里验证你是:再次感谢.

#import "PopUpMenuViewController.h"



@implementation PopUpMenuViewController

@synthesize menuType;
@synthesize data;
@synthesize popView;
@synthesize menu;
@synthesize customViewController;

#pragma mark -
#pragma mark UIPOPOVERCONTROLLER DELEGATE METHODS
#pragma mark -

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController{ …
Run Code Online (Sandbox Code Playgroud)

objective-c ipad

3
推荐指数
1
解决办法
2576
查看次数

bash脚本没有获取管道数据

我正在尝试编写一个bash脚本来操作从xsel传输的数据.

...
ary=()
while read data; do
    echo $data
    ary=( "${ary[@]}" "$data" )
done
Run Code Online (Sandbox Code Playgroud)

问题是我打电话时没有看到任何东西:

xsel | myscript.sh
Run Code Online (Sandbox Code Playgroud)

我试过了

echo "testing testing" | myscript.sh
Run Code Online (Sandbox Code Playgroud)

这确实有效,而且我也确保有来自xsel的东西

xsel | festival --tts --pipe
# will read the clipboard string piped from xsel aloud
Run Code Online (Sandbox Code Playgroud)

有什么建议?提前致谢

bash pipe

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