标签: undefined

从另一个文件调用 C++ 函数时出现“未定义符号”

我有两组文件:PolynomialArithmetic.h/cpp 和 Options.h/cpp

Options.h 定义为:

// Options.h

#ifndef Options_h
#define Options_h

#define BINARY_HEAP 0

inline int chosenHeap ();


#endif
Run Code Online (Sandbox Code Playgroud)

Options.cpp定义为:

// Options.cpp

#include "Options.h"

inline int chosenHeap() { return BINARY_HEAP; }
Run Code Online (Sandbox Code Playgroud)

PolynomialArithmetic.cpp 包含以下内容:

// PolynomialArithmetic.cpp

#include "PolynomialArithmetic.h"
#include "Options.h"

void foo () {
...
    if (chosenHeap() == BINARY_HEAP) {
        // DO SOMETHING
    }
...
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,我收到错误:

Undefined symbols for architecture x86_64:
    "chosenHeap()", referenced from: foo() in PolynomialArithmetic.o
Run Code Online (Sandbox Code Playgroud)

我猜测这是某种链接错误。这是我编译代码的方式:

# Makefile

# some configs
....

main: Options.o PolynomialArithmetic.o
    $(CXX) $(CXXFLAGS) $(CPPFLAGS) …
Run Code Online (Sandbox Code Playgroud)

c++ linker symbols makefile undefined

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

C++ 编译时出错:未定义的引用

我正在尝试在 MPI 中编译 C++ 文件,但它不起作用。它说:

main.cpp:(.text+0x35d): undefined reference to `Complex::Complex(double, double)'
main.cpp:(.text+0x384): undefined reference to `Complex::Complex(double, double)'
main.cpp:(.text+0x3a5): undefined reference to `Complex::multiply(Complex*)'
main.cpp:(.text+0x3b7): undefined reference to `Complex::add(Complex*)'
main.cpp:(.text+0x3cf): undefined reference to `Complex::modul()'
/tmp/ccoIbWIN.o: In function `f2(int)':
main.cpp:(.text+0x53d): undefined reference to `Complex::Complex(double, double)'
main.cpp:(.text+0x580): undefined reference to `Complex::Complex(double, double)'
main.cpp:(.text+0x5a1): undefined reference to `Complex::multiply(Complex*)'
main.cpp:(.text+0x5b3): undefined reference to `Complex::add(Complex*)'
main.cpp:(.text+0x5cb): undefined reference to `Complex::modul()'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这是 Complex.h:

#include <math.h>
#include <iostream>

using namespace std;

class Complex{ …
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors undefined

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

使用 isset() 的自定义函数在使用时返回未定义的变量

我有一个字段,如果满足特定条件,则该字段具有自定义文本...如果不满足,则该字段为空白。

我已经编写了一个自定义函数测试是否设置了变量

function AmISet($fieldName) {

if (isset($fieldName)) {

    echo "I am set";
}else{
    echo "I am not set";    
    }
};
Run Code Online (Sandbox Code Playgroud)

但是当我附加该字段时,出现变量未定义的错误。但当我做常规时,isset($fieldName); 我没有问题。有什么方法可以解决这个问题并让我的函数而不是 isset() 执行此操作?

我想在函数中添加其他逻辑,但我只希望它在设置变量的情况下工作......但如果没有设置变量,我不希望出现未定义的错误。

我是 php 新手,非常感谢您能给我的任何帮助或指导。感谢您的帮助!

php variables undefined isset

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

为什么我收到错误“该类型的方法未定义”?

我正在大学学习基础知识,希望获得有关 Eclipse 中以下错误的帮助:“The method getCost() is undefined for the type ShopCLI”&

"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method getCost() is undefined for the type ShopCLI
    at components.ShopCLI.main(ShopCLI.java:39)
Run Code Online (Sandbox Code Playgroud)

这是我的代码

public class ShopCLI {

    public static void main(String[] args) {

        ArrayList<Order> ord = new ArrayList<>();

        System.out.println("Welcome to Sandwich Shop CLI V1!");
        System.out.println("Please Choose and Option by Typing the Appropriate Number from the List");
        System.out.println("1.New Order");

        Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt();

        System.out.println("Please Choose an Outer From …
Run Code Online (Sandbox Code Playgroud)

java methods constructor types undefined

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

process.env TypeError:无法读取未定义的属性“PATH”

为什么我在这样的代码中收到“无法读取未定义的属性‘PATH’”

console.log(process.env.PATH)
Run Code Online (Sandbox Code Playgroud)

我期望获得UNIX环境变量PATH (PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

但我的node.js“process.env”变量未定义

environment-variables undefined node.js

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

GO (Golang) 在同一目录中看不到其他 .go 文件

问题:从其他包导出的函数未定义,在 main.go 内部不可见

解决方案:main.go放入单独的文件夹中(将其命名为app或 main,没关系)。只有 go.mod 保留在根目录中,其中包含文件夹“ app ”和“package1”“package2”等。在此 VSCode 在保存时自动添加导入之后,我什至不需要执行任何操作。如果我在 root 中有 main.go 那么它不起作用(大多数时候),因为它不能“看到”其他模块(未定义)的函数。

我在这里找到了解决方案(参见 davidbost 的帖子)。安德烈·迪亚特洛夫(Andrey Dyatlov)在本页上的解决方案也工作了一段时间,然后停止工作。

我大概花了 10 个小时的尝试、错误和搜索。 希望以上内容对其他人有帮助。谢谢大家!

_______________________________________________________________________

原问题描述:

Windows 10、Go 1.17、带有 Go 扩展的 VS Code。

您好,我是 Go 新手,由于以下问题,我无法遵循单个教程。当我在与 main.go 相同的目录(或同一目录的文件夹内)创建另一个 .go 文件时,我收到错误消息.\main.go:7:2: undefined: SayHi


main.go 文件:

package main

import "fmt"

func main() {
    fmt.Println("1st")
    SayHi()
}
Run Code Online (Sandbox Code Playgroud)

/something 文件夹中的另一个 .go 文件:

package something

import "fmt"

func SayHi() {
    fmt.Println("Hi!")
}
Run Code Online (Sandbox Code Playgroud)

运行 go run main.go …

import undefined go

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

JSON对象属性未定义

我进行AJAX调用以获取一些数据,将数据作为JSON对象(而不是字符串)返回.当我记录对象时,我得到了正确的对象及其属性.但是,当我尝试记录其中一个对象属性时,我得到了未定义.

有关我的代码的屏幕截图:http: //i.imgur.com/gnt3w.gif

有关控制台日志的屏幕截图,请访问:http: //i.imgur.com/DO09m.gif

我究竟做错了什么?

javascript ajax json undefined

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

随机名称返回未定义

我在这个随机名称生成器中有一个工作函数,但它总是在某个时候返回'undefined'.我试过从数组中减去1来防止它走得太远,但这并没有改变任何东西.我该如何测试并调试它?

jsbin

javascript undefined

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

jQuery:onClick Undefined?

我遇到onclick问题,特别是下面代码中的onclick ="Foo()".点击后,我得到了未定义,但我已将功能包含在顶部,甚至在功能之外.

$( document ).ready(function() {
    function Foo() {
        console.log('clicky click click');
        document.getElementById('categoryBubble').style.display = 'none';
    }
    $('.mutliSelect select').on('change', function() {
        var title = $(this).closest('.mutliSelect').find('option').val();
        title = $(this).val() + "";
        if ($(this).is(':selected')) {
            // the code for if goes here
        } else {
            console.log('im working here #2');
            var html = '<span id="categoryBubble" title="' + title + '">' + title + '</span>' + '<span onclick="Foo()" class="Xout">x</span>';
            $('.multiSel').append(html);
            $(".hida").hide();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery onclick undefined

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

为什么$ {flag == Y}返回True,而$ {flag =='Y'}返回False?

我对以下行为感到困惑。变量标志从控制器传递到jsp代码:

flag: <c:out value="${requestScope.flag}"/> 
flag eq 'Y': ${requestScope.flag eq 'Y'}
flag == 'Y': ${requestScope.flag=='Y'}
flag==Y: ${requestScope.flag==Y}
Run Code Online (Sandbox Code Playgroud)

情况1:标志未传递到视图(输出):

flag: 
flag eq 'Y': false 
flag == 'Y': false 
flag==Y: true
Run Code Online (Sandbox Code Playgroud)

情况2:将值“ Y”的标志传递给视图:

flag: Y
flag eq 'Y': true 
flag == 'Y': true 
flag==Y: false
Run Code Online (Sandbox Code Playgroud)

java jsp servlets jstl undefined

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