gpt4 book ai didi

c++ - uint8_t和unsigned char之间的混淆

转载 作者:行者123 更新时间:2023-12-02 09:59:23 28 4
gpt4 key购买 nike

我正在尝试使用以下命令从头文件中调用void process (uint8_t* I1,uint8_t* I2,float* D1,float* D2,const int32_t* dims);

    int n=10;
size_t size=n*n*sizeof(uint8_t);
uint8_t* I1 = (uint8_t*)malloc(size);
uint8_t* I2 = (uint8_t*)malloc(size);
size=n*n*sizeof(float);
float* D1=(float*)malloc(size);
float* D2=(float*)malloc(size);
const int32_t dims[3] = {n,n,n};
process(I1,I2,D1,D2,dims);
但是当我在Linux上使用g++进行编译时,收到消息 undefined reference to process(unsigned char*, unsigned char*, float*, float*, int const*)为什么会这样?

最佳答案

, I get the message undefined reference to process(unsigned char*, unsigned char*, float*, float*, int const*) Why does this happen?


发生这种情况是因为链接器无法找到函数 process(...)的定义。如果此函数来自库,则意味着您未链接到包含此函数定义的库。
另外, uint8_t只是gcc中 unsigned char的别名。
此外,当您以 std::vector的形式获得非常简单和安全的解决方案时,不应手动管理内存。没有任何 malloc的代码:
    size_t size = n * n;
std::vector <uint8_t> I1 (size);
std::vector <uint8_t> I2 (size);

std::vector <float> D1(size);
std::vector <float> D2(size);

const int32_t dims[3] = {n,n,n};

process(&I1[0], &I2[0], &D1[0], &D2[0], dims);

关于c++ - uint8_t和unsigned char之间的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63449688/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com