gpt4 book ai didi

c++ - 如何在 Windows 上的 Ubuntu 上获得使用 XWindows 在 Bash 上构建的 C++ 程序?

转载 作者:行者123 更新时间:2023-11-28 04:41:21 24 4
gpt4 key购买 nike

我正在尝试获取一个 C++ 程序,该程序使用 XWindows 在 Windows 上的 Ubuntu 上的 Bash 上构建。我知道 Windows 上的 Ubuntu 上的 Bash 不正式支持图形 Linux 应用程序,但我希望尽可能构建该程序。我已尝试尽可能减少我的问题,希望我提供了足够的信息。

首先,我使用以下命令安装了 libx11-dev 包和与其关联的包:

sudo apt-get install libx11-dev

其次,我的 Makefile 如下:

CXX = g++
CXXFLAGS = -Wall -MMD -lX11
EXEC = exe
OBJECTS = main.o window.o
DEPENDS = ${OBJECTS:.o=.d}

${EXEC}: ${OBJECTS}
${CXX} ${CXXFLAGS} ${OBJECTS} -o ${EXEC}

-include ${DEPENDS}

.PHONY: clean

clean:
rm ${EXEC} ${OBJECTS} ${DEPENDS}

三、window.h文件如下:

#ifndef __WINDOW_H__
#define __WINDOW_H__

#include <X11/Xlib.h>

class Xwindow {
Display *d;

public:
Xwindow();
};

#endif

第四个window.cc文件如下:

#include "window.h"

Xwindow::Xwindow() {
d = XOpenDisplay(NULL);
}

最后的main.cc文件如下:

#include "window.h"

int main() {
Xwindow xw();

return 0;
}

当我运行我的 Makefile 时,我得到以下输出:

g++ -Wall -MMD -lX11   -c -o main.o main.cc
g++ -Wall -MMD -lX11 -c -o window.o window.cc
g++ -Wall -MMD -lX11 main.o window.o -o exe
window.o: In function `Xwindow::Xwindow()':
window.cc:(.text+0x12): undefined reference to `XOpenDisplay'
collect2: error: ld returned 1 exit status
Makefile:8: recipe for target 'exe' failed
make: *** [exe] Error 1

感谢任何帮助。

最佳答案

在某些环境中,包括 Ubuntu,您需要在使用这些库的目标文件之后传递 -l 参数。

此外,-l 不属于 CXXFLAGS,它们应该在 ${OBJECTS} 之后的 LIBS

关于c++ - 如何在 Windows 上的 Ubuntu 上获得使用 XWindows 在 Bash 上构建的 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50139149/

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