Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ wxWidget v2.8软件。让它与3.0库一起工作?_C++_Linux_Wxwidgets - Fatal编程技术网

C++ wxWidget v2.8软件。让它与3.0库一起工作?

C++ wxWidget v2.8软件。让它与3.0库一起工作?,c++,linux,wxwidgets,C++,Linux,Wxwidgets,6年前,我使用wxWidget 2.8库编写了一个软件。 我想让它在安装了wxWidget 3.0 lib的Ubuntu 16.04上运行。它编译时没有任何错误,以下是我的Makefile的输出: ---------------------------------------------------------------------- wxFlasher configuration : + DEBUG = 0 + UNICODE = 1 + STATIC = 0 + WX_VERSION =

6年前,我使用wxWidget 2.8库编写了一个软件。 我想让它在安装了wxWidget 3.0 lib的Ubuntu 16.04上运行。它编译时没有任何错误,以下是我的Makefile的输出:

----------------------------------------------------------------------
wxFlasher configuration :
+ DEBUG = 0
+ UNICODE = 1
+ STATIC = 0
+ WX_VERSION = 3.0.2
+ SRC_DIR = /var/dev/wxFlasher/src
+ BUILD_DIR_BASE = /var/dev/wxFlasher/build_gcc/releaseu
+ OUT_DIR = /var/dev/wxFlasher/out_gcc/releaseu
+ GCC_PATH = /usr/bin/gcc
+ GCC_VERSION = gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
----------------------------------------------------------------------
然后,当我尝试运行应用程序时,它会说:

error while loading shared libraries: libwx_gtk2u_xrc-2.8.so.0: cannot open shared object file: No such file or directory
我该怎么做才能让它工作

编辑:

ldd的输出:

linux-vdso.so.1 =>  (0x00007ffde9753000)
libwx_gtk2u_xrc-2.8.so.0 => not found
libwx_gtk2u_core-2.8.so.0 => not found
libwx_baseu_xml-2.8.so.0 => not found
libwx_baseu-2.8.so.0 => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbf56ffd000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbf56de0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbf56a17000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbf5670e000)/lib64/ld-linux-x86-64.so.2 (0x00007fbf5737f000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbf564f8000)
在wxconfig.mak中:

WX_CONFIG := wx-config

# argument for debug
ifeq ("$(DEBUG)", "0")
  WX_CONFIG_ARGS += --debug=no
else
  WX_CONFIG_ARGS += --debug=yes
endif

# argument for unicode
ifeq ("$(UNICODE)", "0")
  WX_CONFIG_ARGS += --unicode=no
else
  WX_CONFIG_ARGS += --unicode=yes
endif

# argument for static
ifeq ("$(STATIC)", "0")
  WX_CONFIG_ARGS += --static=no
else
  WX_CONFIG_ARGS += --static=yes
endif

# get wxWidgets configuration
WX_LIBS := $(shell $(WX_CONFIG) --libs $(WX_CONFIG_ARGS))
WX_FLAGS := $(shell $(WX_CONFIG) --cppflags $(WX_CONFIG_ARGS))
WX_VERSION := $(shell $(WX_CONFIG) --version $(WX_CONFIG_ARGS))
wx config--libs向我返回以下内容:

-L/usr/lib/x86_64-linux-gnu -pthread   -lwx_gtk2u_xrc-3.0 -lwx_gtk2u_html-3.0 -lwx_gtk2u_qa-3.0 -lwx_gtk2u_adv-3.0 -lwx_gtk2u_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0

您只需要使用新的库版本重新编译它。从您收到的错误消息判断,您没有这样做,或者编译失败


另外,请务必阅读有关升级到3.0的文档,因为这几乎可以保证您会有错误。

我编辑了我的问题,在编译过程中没有错误,并且我使用3.0版本进行了很好的编译。。。我不明白发生了什么事on@BaptisteArnaud,那么,如果运行“ldd”,输出是什么?另外,您是自己编译库还是从repo安装的?问题编辑。我想我是从回购协议上安装的@BaptisteArnaud,我认为你的操作系统版本是2.8和3.0混合的。我建议删除/usr/lib、/usr/local/lib和(可能)目录中的所有wx引用。然后安装wxGTK-3.0和wxGTK-3.0开发包并重新编译程序。或者更好——从官方下载页面下载源代码,自己编译,然后重新编译应用程序。