小编sha*_*anu的帖子

链接错误c和c ++(未定义的引用)

abc.c文件

#include "abc.h"
int abc()
{
    return 10;
}
Run Code Online (Sandbox Code Playgroud)

abc.h文件

int abc();
Run Code Online (Sandbox Code Playgroud)

mymain.cpp文件

#include "abc.h"
int main()
{
    abc();
    return  0;
}
Run Code Online (Sandbox Code Playgroud)

Makefile文件

CC=gcc -O2 
CP=g++

mymain: mymain.o abc.o
    $(CP) -o mymain mymain.o abc.o

mymain.o: mymain.cpp abc.h
    $(CP) -c mymain.cpp abc.h

abc.o: abc.c abc.h
    $(CC) -c abc.c abc.h

clean:  
    $(RM) *.o mymain
Run Code Online (Sandbox Code Playgroud)

产量

g++ -c mymain.cpp abc.h
gcc -O2  -c abc.c abc.h
g++ -o mymain mymain.o abc.o
mymain.o: In function `main':
mymain.cpp:(.text+0x5): undefined reference to `abc()'
collect2: error: ld returned …
Run Code Online (Sandbox Code Playgroud)

c c++ linker makefile

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

在Android中没有提示的蓝牙发现

我可以使用以下代码在没有任何提示的情况下打开/关闭蓝牙.它需要BLUETOOTHBLUETOOTH_ADMIN权限.

boolean isEnabled = bluetoothAdapter.isEnabled();
if (enable && !isEnabled) {
    return bluetoothAdapter.enable();
} else if (!enable && isEnabled) {
    return bluetoothAdapter.disable();
}
Run Code Online (Sandbox Code Playgroud)

但没有找到任何方法可以在没有用户提示的情况下设置蓝牙.每次都向用户提示它.我害怕没有"不要再问我"的功能了.有没有什么好方法可以让蓝牙设备被发现?我不关心持续时间.我的设备也没有扎根.

更多信息

我找到了BluetoothAdapter.java的源代码,它有一个名为的公共方法setDiscoverableDuration.但为什么我无法访问它?为什么在Api文档中隐藏了一些公共方法?他们是怎么做到的?所有方法都是公开的.

android bluetooth

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

对'pthread_cancel'的未定义引用

我写过以下T课程pthread.当我使用g ++ -lpthread编译这个类时,它工作正常.但是如果我从另一个类扩展这个类A并一起编译它会返回一个错误; "对pthread_cancel的未定义引用"

码:

class T{
private:
    pthread_t thread;
public:
    void start(){
        pthread_create(&thread,NULL,&run,this);
    }
    void destroy_thread(){
        pthread_cancel(thread);
    }
    static void* run(void*){}
    ~Thread(){
        destroy_thread();
    }
};
Run Code Online (Sandbox Code Playgroud)

下一堂课:

class A:T{
    A(){
      start();
    }
}
Run Code Online (Sandbox Code Playgroud)

主要

int main(){
  A a;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译:

g++ -c T.cpp A.cpp Main.cpp -lpthread 
g++ -o out *.o
Run Code Online (Sandbox Code Playgroud)

错误: 未定义对`pthread_cancel'的引用

c++ g++ pthreads

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

防止从android中最近的应用列表运行活动

我有一个活动A,它在收到自定义广播时开始。此活动不是启动器活动。

接收者

@Override
public void onReceive(Context context, Intent intent) {
    Intent i = new Intent(context,A.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.putExtras(intent.getExtras());
    context.startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)

A 接收意图值(意图有一些值)并完全填充一些任务。整个程序运行良好。

问题是,当我打开最近的应用程序列表(长按主页按钮)时,这个活动出现(不是启动器活动),当我点击它时,活动以意图值开始!!。所以我无法检查这个活动是从广播接收器还是从其他接收器开始。

我怎样才能解决这个问题??此活动应仅在收到广播时开始。

编辑

显现

android:name".A"
android:screenOrientation="portrait"
android:launchMode="singleInstance"
android:noHistory="true"
android:taskAffinity=""
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-activity

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

C/C++中的并发UDP连接限制

我写了一个从端口的客户端server in c接收UDP数据X.我已经使用Epoll(non block)socket进行UDP监听,并且只有一个线程作为worker.伪代码如下:

on_data_receive(socket){
    process(); //take 2-4 millisecond
    send_response(socket);
} 
Run Code Online (Sandbox Code Playgroud)

但是当我发送5000 concurrent(使用线程)请求服务器未命中5-10%请求时.on_data_receive()从未调用过5-10%的请求.我正在本地网络测试,所以你可以假设没有丢包.我的问题是为什么on_data_receive没有要求一些请求?套接字的连接限制是多少?随着并发请求丢失率的增加也增加.

注意:在将请求发送到服务器之前,我使用了200毫秒的随机休眠.

c c++ sockets udp

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

C++类中的函数指针

我正在尝试在 C++ 类中使用函数指针,但出现错误。

#include <cstdio>
#include <iostream>
using namespace std;

class abc{
public:
    void hello(){
        printf("Hello world\n");
    }   
    abc(){
        void (*hw)(void);
        hw = &hello;
        hw();
    }
}

int main()
{
    abc ab;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误

error: cannot convert ‘void (abc::*)()’ to ‘void (*)()’ in assignment
Run Code Online (Sandbox Code Playgroud)

但是以下代码适用于代码库中的我。任何人都可以帮我找出区别吗?

void hello(){
    printf("Hello world\n");
}

int main()
{
    void (*hw)(void);
    hw = &hello;
    hw();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ function-pointers

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