在C++中使用弱符号时出错
Getting errors while using weak symbol in C++?
我正在开发C++。我创建了一个弱符号如下:
string* myWeakSymbol(const string str)__attribute__((weak));
并在如下函数中使用了此符号:
void function()
{
if(myWeakSymbol)
myWeakSymbol("balaji");
}
当我试图编译上面的代码时,它给出了一个错误:
error: could not convert 'myWeakSymbol' to 'bool'
以上错误有什么解决办法吗?
if(myWeakSymbol)
应该做什么
myWeakSymbol
是一个函数。如果您不调用myWeakSymbol
,而只是在表达式中使用它,那么它将被视为函数地址编译器不知道如何将if语句中的函数地址转换为布尔值
它与弱属性无关
编辑:我错了。您可以获取函数的地址并将其放入if
语句中。它将转换为bool。问题一定出在别的地方。
不过,它与weak
注释无关。
下面的例子在我的机器上编译:
typedef const char* string;
string* myWeakSymbol(const string str)__attribute__((weak));
void function()
{
if(myWeakSymbol)
myWeakSymbol("balaji");
}
int main() {
return 0;
}
相关文章:
- PCL 出错:体系结构x86_64 @pcl的未定义符号
- libstdc++.so.6:添加符号时出错:命令行中缺少 DSO
- 解析外部符号时出错
- MySQL C++连接器:添加符号时出错:文件格式无法识别
- 使用静态变量未解析的外部符号/未定义的引用时出错
- 尝试将常量字符 [] static_cast<>为无符号字符 * 时出错
- 可能的 GCC 链接器错误会导致将弱符号和局部符号链接在一起时出错
- std::out_of_range 比较字符串中的符号时出错
- C++ Linux 加载共享库时出错“未定义的符号:pthread_create”
- 凉亭ROS插件出错:建筑x86_64的未定义符号
- 编译 c++ 文件时出错:未定义的符号
- 从无符号 int 转换为浮点数时出错
- 将字符 [2] 转换为无符号短字符时出错
- openCV 2.4.7 添加符号时出错:命令行中缺少 DSO
- 链接器何时可以在多重定义的符号上出错
- 在 Eclipse 中编译时出错:ld:找不到架构x86_64的符号
- 赛格在一辆汽车上出错,从无符号的字符转换为 const 字符 在C++
- 构建应用程序时出错:体系结构 armv7 的未定义符号
- 在C++中使用弱符号时出错
- LunarLander程序出错:符号未解析