C++ 需要帮助C++;编译器和链接器错误消息

C++ 需要帮助C++;编译器和链接器错误消息,c++,C++,我一直在为我的大学作业编写程序,我几乎完成了,但我遇到了一个奇怪的错误,根本找不到解决方案。这只是程序中的一个函数。所以…它在这部分代码上抛出一个错误。XOR运算符似乎是问题所在。我试图重命名“nesto”变量的名称,以防它和某个函数的名称相同,但没有成功。请帮忙!思想?建议 错误:对“(std::string{aka std::basic_string})(int&)的调用不匹配。 void* ukupno(void* naziv){ while(kraj!=1){ s

我一直在为我的大学作业编写程序,我几乎完成了,但我遇到了一个奇怪的错误,根本找不到解决方案。这只是程序中的一个函数。所以…它在这部分代码上抛出一个错误。XOR运算符似乎是问题所在。我试图重命名“nesto”变量的名称,以防它和某个函数的名称相同,但没有成功。请帮忙!思想?建议

错误:对“(std::string{aka std::basic_string})(int&)的调用不匹配。

void* ukupno(void* naziv){
    while(kraj!=1){
        sem_wait(&s_suma);
        for(int v=0;v<uk_buffer;v++) 
                nesto^= buffer(v);

        sem_post(&s_dohvati);   
        }
    }
void*ukupno(void*naziv){
while(kraj!=1){
sem_wait&s_suma;

对于(intv=0;v您没有提供足够的代码来说明,但是这个错误看起来好像没有对

buffer(v);
编辑


好的。现在我们可以看到了。试试
buffer[v]

错误消息告诉您,如果您得到的不是函数而是字符串,则无法使用函数调用语法。您可能指的不是
buffer(v)
,而是
buffer[v]
。使用的括号类型很重要。

您的缓冲区是字符串

string buffer;
那是什么呢

nesto^= buffer(v);
将buffer更改为vector数组或任何其他容器,因为您希望对其进行索引。如果您希望将buffer中的字母作为单个字符串,请执行以下操作:

nesto^= buffer[v];

…因此,可能是5行代码中的任何一行,现在请输入错误的行号…是的,与+、-和其他运算符的问题相同…是的!这是解决方案,但我仍然无法编译。怎么会这样?您是否遇到另一个编译器错误?大量“未定义的对'sem_post'的引用”对于几乎每个线程的创建、连接和扫描,wait/post和@end of c Id返回1个exitstatus@LovroPredovan这意味着您可以编译,但不能链接。很可能,您传递给GCC的选项是错误的,请参阅
sem\u post
的文档,并查找“链接”.是的,我的错…只是忘记了在bash-lpthread-D_REENTRANT中使用线程时提高标志,做得很好。谢谢!
nesto^= buffer[v];