标签: c++

查找包位置时出现问题:libsdl2-image-2.0-0

最近我一直在研究 SDL 库,并想开始将 libsdl2-image-2.0-0 与 SDL 一起使用。我一直在尝试让它在 Ubuntu 15.04 上运行。我已经使用安装了该包

sudo apt-get install libsdl2-image-2.0-0
Run Code Online (Sandbox Code Playgroud)

安装似乎完全正常,但是当我尝试将图像库包含在我的 C++ 代码中时

#include <SDL2/SDL_image.h>
Run Code Online (Sandbox Code Playgroud)

我收到错误“致命错误:SDL2/SDL_image.h:没有这样的文件或目录”我去查看了 SDL2 基础库所在的位置 /usr/local/include/SDL2 ,正如错误消息所示 SDL_image.h 是不在那里。然后我试图找出图书馆在哪里使用

apt-file search SDL_image.h
Run Code Online (Sandbox Code Playgroud)

当我这样做时

libsdl-image1.2-dev: /usr/include/SDL/SDL_image.h
libsdl2-image-dev: /usr/include/SDL2/SDL_image.h
Run Code Online (Sandbox Code Playgroud)

两者都显示为结果。这对我来说很奇怪,因为我没有安装 libsdl2-image-dev。另外,当我尝试查看 /usr/include/SDL2/ 时,该文件夹甚至似乎不存在,这只会增加我的困惑。

然后我尝试删除 libsdl2-image-dev 这样我就可以安装 libsdl2-image-2.0-0 但是当我运行命令时

sudo apt-get remove libsdl2-image-dev
Run Code Online (Sandbox Code Playgroud)

我明白了

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'libsdl2-image-dev' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
Run Code Online (Sandbox Code Playgroud)

当我尝试运行命令时 …

c++ sdl 15.04

5
推荐指数
1
解决办法
2万
查看次数

在 Ubuntu 12.04 的文件夹中编译 C++

我有一些关于在文件夹中编译 .cpp 的问题,它说

first.cpp 没有那个文件或目录

但是当我在家里运行它时,它会编译。我可能遗漏了任何设置?谢谢。

这是终端输出(查看大图): 在此处输入图片说明

law@ubuntu:~$ ls
android-sdk   Downloads         Pictures        test        wallpapers
android-sdks  eclipse           Public          tomcat      workspace
Desktop       examples.desktop  sourcecodescpp  Ubuntu One
Documents     Music             Templates       Videos
law@ubuntu:~$ dir sourcecodescpp
first.cpp
law@ubuntu:~$ g++ first.cpp
g++: error: first.cpp: No such file or directory
g++: fatal error: no input files
compilation terminated.
law@ubuntu:~$ ./a/out
bash: ./a/out: No such file or directory
law@ubuntu:~$ ls
android-sdk   Downloads         Pictures        test        wallpapers
android-sdks  eclipse           Public          tomcat      workspace
Desktop       examples.desktop  sourcecodescpp  Ubuntu One
Documents …
Run Code Online (Sandbox Code Playgroud)

compiling ubuntu-netbook c c++ 12.04

4
推荐指数
1
解决办法
5902
查看次数

我无法使用 g++ 命令编译 C++ 程序

如果我尝试通过以下命令编译我的 C++ 源文件:

g++ a.cpp
Run Code Online (Sandbox Code Playgroud)

它输出:

The program 'g++' can be found in the following packages:
 * g++
 * pentium builder

try:
sudo apt-get intsall <<a>selected package>
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行建议的命令 ( sudo apt-get install g++),它会显示一切都已安装。

那么,基本上,我如何在 Ubuntu 12.04 中编译一个简单的 C++ 程序?

compiling c++ g++ compiler

4
推荐指数
1
解决办法
3997
查看次数

我需要知道 C++ 才能开发 Ubuntu 应用程序吗?

我是一名 Java 开发人员。我对 C++ 了解不多。我应该学习 C++ 来开发 Ubuntu 应用程序吗?

c++ application-development javascript qml

4
推荐指数
1
解决办法
243
查看次数

如何在命令行程序中创建简单的类似窗口的元素?

当我sudo dpkg-reconfigure lightdm在终端中执行时,我看到一个类似窗口的简单列表菜单。有没有办法在 C++ 中制作类似的东西?

这看起来像:
在此处输入图片说明

text command-line c++ ncurses

4
推荐指数
1
解决办法
1675
查看次数

未定义的引用编译 14.04.2 上的 clang 教程

我尝试从clang 的 libtooling 教程(“组合在一起”部分)编译代码。编译作品:

g++ `llvm-config-3.5 --cxxflags` -fno-rtti  -c test.cpp -o test.o
Run Code Online (Sandbox Code Playgroud)

我从 clang 得到了未定义的引用,所以我什至尝试链接到所有的 clang 库:

CLANG_LIBS="$(ls /usr/lib/llvm-3.5/lib/libclang* | sed -e 's/.*lib/-l/g' -e 's/\.a//g' -e 's/\.so.*//g' | tr '\n' ' ' )"
g++ `llvm-config-3.5 --ldflags --libs` $CLANG_LIBS test.o -o test
Run Code Online (Sandbox Code Playgroud)

我得到 ~ 15 个未定义的引用:

    test.o: In function `ASTFrontendAction':
/usr/lib/llvm-3.5/include/clang/Frontend/FrontendAction.h:215: undefined reference to `clang::FrontendAction::FrontendAction()'
test.o: In function `SyntaxOnlyAction':
/usr/lib/llvm-3.5/include/clang/Frontend/FrontendActions.h:129: undefined reference to `vtable for clang::SyntaxOnlyAction'
test.o: In function `std::unique_ptr<clang::tooling::FrontendActionFactory, std::default_delete<clang::tooling::FrontendActionFactory> > clang::tooling::newFrontendActionFactory<clang::SyntaxOnlyAction>()::SimpleFrontendActionFactory::~SimpleFrontendActionFactory()':
/usr/lib/llvm-3.5/include/clang/Tooling/Tooling.h:309: undefined reference to `clang::tooling::FrontendActionFactory::~FrontendActionFactory()'
test.o: …
Run Code Online (Sandbox Code Playgroud)

shared-library compiling c++ clang

4
推荐指数
1
解决办法
7275
查看次数

如何在 Ubuntu 14.04 中为 python3 安装 dlib

我正在按照安装指南https://cmusatyalab.github.io/openface/setup/进行操作。我做了:

 mkdir -p ~/src
 cd ~/src
 tar xf dlib-19.1.0.tar.gz
 cd dlib-19.1.0/python_examples
 mkdir build
 cd build
 cmake ../../tools/python
 cmake --build . --config Release
 sudo cp dlib.so /usr/local/lib/python3.4/dist-packages/
Run Code Online (Sandbox Code Playgroud)

它说此时我应该能够运行import dlib,但是如果我从 virtualenv 运行它会给我

ImportError: No module named dlib
Run Code Online (Sandbox Code Playgroud)

如果我从 virtualenv 外部运行它,它会给出:

ImportError: dynamic module does not define init function (PyInit_dlib)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如何为python安装dlib?

UPD:我为 Python2 尝试过同样的方法:

sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)

它适用于python2。那么如何对python3做同样的事情呢?

python compiling c++ cmake software-installation

4
推荐指数
1
解决办法
3万
查看次数

为什么在使用 gcc 编译一个简单的 C++ 程序时会出现“未定义的引用”错误?

我尝试在 Ubuntu 中编译 C++。我在 Gedit 中编写代码,这是一个简单的 hello world 项目。我去终端运行它gcc helloworld.cc并弹出此消息:

/tmp/ccy83619.o: In function `main':
helloworld.cc:(.text+0xa): undefined reference to `std::cout'
helloworld.cc:(.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccy83619.o: In function `__static_initialization_and_destruction_0(int, int)':
helloworld.cc:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
helloworld.cc:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这是什么意思,我该往哪里去?

compiling gcc c++

4
推荐指数
1
解决办法
2万
查看次数

如何在 Ubuntu 上使用最新的 GCC?(Ubuntu 18.04;gcc 8.1)

Ubuntu 当前提供 gcc 7.3 版,但当前提供 gcc 8.1 版。我想将 gcc 8.1 与 gcc 7.3 一起安装(这样,如果我调用 c++,它会调用 gcc 7.3 的版本,如果我调用 c++-8,它会调用 8.1 的版本)。

我尝试按照此问题中概述的说明进行操作(但将 4.9 替换为 8.1),但 gcc 8.1 不在问题中列出的存储库中:

$ sudo apt-get install gcc-8.1
[sudo] password for sky: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package gcc-8.1
E: Couldn't find any package by glob 'gcc-8.1'
E: Couldn't find any package by regex 'gcc-8.1'
Run Code Online (Sandbox Code Playgroud)

如何在 ubuntu 18.04 中安装 gcc 8.1?

编辑:这个问题不是重复的,因为 …

gcc c++ software-installation 18.04

4
推荐指数
1
解决办法
2万
查看次数

clang 在我的 ubuntu 18.04 上找不到 c++ stdlib,但它在全新安装上找到了。我破坏了什么?

我已经构建了一个 github 包有一段时间了……一个新版本出来了,我构建了它。它使用我的 ubuntu 上默认的 clang6,ubuntu 18.04

现在,它无法编译,找不到标准的包含。在股票上,全新的 ubuntu 18.04 可以正常工作。所以我做了一些坏事。我正在使用基于 ubutntu hwe(所以 5.3)的自定义内核。我正在应用一个小补丁来恢复 intel i915 省电。

我可以简化问题:

$ more test.cc
#include <vector>
Run Code Online (Sandbox Code Playgroud)

当我这样做时它有效:

clang -c test.cc -v -stdlib=libc++
Run Code Online (Sandbox Code Playgroud)

此外,在 18.04.4 的股票上,它在我 apt 安装 clang 后工作。

但是在我的笔记本电脑上,它失败了:

clang -c test.cc -v 
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC …
Run Code Online (Sandbox Code Playgroud)

c++ clang 18.04

4
推荐指数
1
解决办法
3639
查看次数