标签: pkg-config

在Windows上无法使用cabal安装cairo - 如何在win上获得pkg-config?

Configuring cairo-0.12.0...
setup.exe: The program pkg-config version >=0.9.0 is required but it could not
be found.
cabal: Error: some packages failed to install:
cairo-0.12.0 failed during the configure step. The exception was:
ExitFailure 1
Run Code Online (Sandbox Code Playgroud)

那我怎样才能在Windows上获得pkg-config或者如何安装cairo呢?

haskell pkg-config cairo cabal

6
推荐指数
1
解决办法
3304
查看次数

尝试使用 pkg-config 但它不是注册命令

好的,我已经在 Windows 8 下安装了我的整个 Go 开发环境,还有 MinGW。我正在使用LiteIde

C:/Go/bin/go.exe build  [C:/Users/Alyx/Go/Hi]
pkg-config --cflags sdl
exec: "pkg-config": executable file not found in %PATH%
Error: process exited with code 2.
Run Code Online (Sandbox Code Playgroud)

但是后来我收到了“pkg-config”的错误,起初我没有安装。(我正在尝试使用列出全屏模式的测试来编译 SDL 绑定)

然后我将它全部设置在 C:\MinGW\Bin 文件夹(pkg-config.exe 和额外的 dll)中。

但是后来还是不行。进入 CMD,输入其名称“未识别为内部...”

然后我想我必须将一个环境变量放入Windows。我用 "C:\MinGW\bin" 值尝试了 %PATH% 。没有。然后我尝试了 PKG_CONFIG_PATH。没有。

所以我不确定我需要什么环境变量,或者是否有任何类型的变量可以放入 LiteIde。除了那个idk还能做什么。

windows sdl pkg-config go

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

从 CMake / PkgConfig 向 pkg-config 提供选项 --define-variable

为了在 Windows 上移植 Linux 程序(使用 cygwin 和 gcc),我试图正确找到提供pkg-config文件的库(在我的情况下,这些库是由 Graphviz 带来的)。

直接的方法适用于 Linux:

find_package(PkgConfig)
pkg_check_modules(LIB_GRAPHVIZ libcdt libgvc libgraph)
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,我使用安装程序(cygwin 路径:)手动安装了 Graphviz /cygdrive/c/graphviz。为了找到这些pkg-config文件,我导出了PKG_CONFIG_PATH变量,以便.pc在配置 CMake 之前找到这些文件:

export PKG_CONFIG_PATH=/cygdrive/c/graphviz/pkgconfig
cmake $srcdir
Run Code Online (Sandbox Code Playgroud)

配置工作正常,但是.pc文件没有适当的前缀(这会导致包含和链接目录无效):

$ pkg-config --variable=prefix libgraph
/c/graphviz-mingw/local.2.20.3
Run Code Online (Sandbox Code Playgroud)

关于pkg-config,解决方案是使用--define-variable参数调用它,例如这里是如何获得有效的includedir

$ pkg-config --define-variable=prefix=/cygdrive/c/graphviz --variable=includedir libgraph
/cygdrive/c/graphviz/include/graphviz
Run Code Online (Sandbox Code Playgroud)

我的问题:如何在 CMake 中调用它时提供--define-variable参数pkg-config

PkgConfig定义PKG_CONFIG_EXECUTABLE指向pkg-config程序的那个;我试图将我的选项附加到这个变量:

set(PKG_CONFIG_EXECUTABLE "${PKG_CONFIG_EXECUTABLE} --define-variable=/cygdrive/c/graphviz")
Run Code Online (Sandbox Code Playgroud)

pkg_check_modules()未能检测到我的库。我的理解是调用将execute_process()的内容 …

windows cygwin build-process pkg-config cmake

6
推荐指数
1
解决办法
540
查看次数

使用CMAKE构建GLFW3应用程序 - GLFW_LIBRARIES没有设置

我正在尝试使用glfw3构建一个小项目,但无论我做什么,我都无法通过pkgconfig来设置GLFW_LIBRARIES.

这是我的CMakeList.txt

cmake_minimum_required(VERSION 3.3)
project(LearnGLSL)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

if (CMAKE_BUILD_TYPE STREQUAL "")
    set(CMAKE_BUILD_TYPE Debug)
endif()


if(CMAKE_BUILD_TYPE STREQUAL "Debug")
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/debug")
    set(PROJECT_BINARY_DIR "${CMAKE_SOURCE_DIR}/build/debug")
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")


file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})


find_package(OpenGL REQUIRED)

find_package(PkgConfig REQUIRED)
pkg_check_modules(GLFW REQUIRED glfw3)



include_directories(
        ${OPENGL_INCLUDE_DIR}
        ${GLFW_INCLUDE_DIRS}
)


set(SOURCE_FILES main.cpp gl_core_4_3.cpp)

message(WARNING "${GLFW_LIBRARIES}")

add_executable(LearnGLSL ${SOURCE_FILES})
target_link_libraries(LearnGLSL ${OPENGL_gl_LIBRARY} ${GLFW_LIBRARIES})


add_custom_command(TARGET LearnGLSL  POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_directory
        ${CMAKE_SOURCE_DIR}/assets
        ${PROJECT_BINARY_DIR}
        COMMENT "Copy resources to build tree")
Run Code Online (Sandbox Code Playgroud)

这是安装glfw3的地方

-- Installing: /usr/local/include/GLFW
-- Installing: /usr/local/include/GLFW/glfw3native.h
-- Installing: /usr/local/include/GLFW/glfw3.h
-- Installing: /usr/local/lib/cmake/glfw/glfw3Config.cmake
-- Installing: …
Run Code Online (Sandbox Code Playgroud)

pkg-config cmake glfw

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

pkg-config:设置-rpath 的最佳实践?

是否有基于输出设置-rpath或 libtool 的最佳实践?我必须诉诸技巧吗?-Rpkg-configsed

c c++ pkg-config rpath library-path

6
推荐指数
1
解决办法
771
查看次数

在 pkg-config 搜索路径中找不到软件包 libusb

我已经通过brew安装了pkg-config和libusb

现在如果我这样做

pkg-config --cflags --libs libusb

我收到以下消息

在 pkg-config 搜索路径中找不到软件包 libusb。也许您应该将包含“libusb.pc”的目录添加到 PKG_CONFIG_PATH 环境变量中找不到软件包“libusb”

所以我按照这篇文章做了

导出 PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/Cellar/libusb/1.0.20/lib/pkgconfig"

但我仍然有问题。我缺少什么?

我使用的是 MAC OSX El Capitan

pkg-config libusb-1.0

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

在 meson.build 中设置 PKG_CONFIG_PATH

我在几个 C 项目(projectAprojectB)中使用介子,其中projectB链接到来自projectA. 在 中,我使用介子projectA/meson.build编写了一个文件,该文件已按预期安装。pkg-config projectA.pcjoin_paths(get_option('prefix'), get_option('libdir'), 'pkgconfig')

projectB/meson.build我用来dependency('projectA')查找projectA.pc文件。

当我使用自定义安装前缀来构建时projectAprojectB构建时meson无法找到。有没有办法指定from ?projectA.pcprojectBPKG_CONFIG_PATHprojectB/meson.build

这个问题通过这个最小的例子重现:

项目A/介子.build:

project('projectA', 'c', version: '1')

pkg = import('pkgconfig')

pkg.generate(name : 'projectA',
             description: 'ProjectA',
             version: meson.project_version())
Run Code Online (Sandbox Code Playgroud)

项目B/介子.build:

project('projectB', 'c', version: '1')
dep = dependency('projectA')
Run Code Online (Sandbox Code Playgroud)

命令:

meson buildA projectA  --prefix=$PWD/install
(cd buildA && ninja install)
#[0/1] Installing files.
#Installing /tmp/test/buildA/meson-private/projectA.pc to …
Run Code Online (Sandbox Code Playgroud)

pkg-config meson-build

6
推荐指数
1
解决办法
6753
查看次数

gtkmm:简单示例无法编译:gtkmm.h:没有这样的文件或目录

我正在研究 gtkmm 文档。我首先尝试编译“简单示例”。这是代码。也可以在这里找到。

/// SimpleExample.cpp

#include <gtkmm.h>

int main(int argc, char *argv[])
{
  auto app =
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");

  Gtk::Window window;
  window.set_default_size(200, 200);

  return app->run(window);
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法编译它

g++ SimpleExample.cpp -o SimpleExample `pkg-config gtkmm-3.0 --cflags --libs`
Run Code Online (Sandbox Code Playgroud)

应该根据文档工作。(参见链接页面末尾。)

跑步pkg-config gtkmm-3.0 --cflags --libs产生

Package gtkmm-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtkmm-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtkmm-3.0' found
Run Code Online (Sandbox Code Playgroud)

我正在运行 Debian 9 Stretch。我安装gtkmm

sudo apt update …
Run Code Online (Sandbox Code Playgroud)

c++ compilation pkg-config gtkmm gtkmm3

6
推荐指数
1
解决办法
5402
查看次数

pip install pycairo 在 osx 上失败:“pkg-config”搜索路径问题

我一直在尝试在 mac os x 上安装 pycairo。我收到一条错误消息,

最初我得到了'pkg-config' not found。通过brew安装后,我得到了Package cairo was not found in the pkg-config search path。原则上我可以尝试编辑搜索路径,但由于这是通过 pip 进行的,所以我希望这一切都能得到解决。有没有办法告诉 pip 将内容放在 pkg-config 知道要查找的地方?

这是完整的消息。

> pip install pycairo
Collecting pycairo
  Using cached https://files.pythonhosted.org/packages/48/20/5e83af98eb897935bf7dc39455e892ba866feebb9b7c3b392982866f9958/pycairo-1.18.1.tar.gz
Building wheels for collected packages: pycairo
  Building wheel for pycairo (setup.py) ... error
  ERROR: Complete output from command /Applications/anaconda/bin/python -u -c 'import setuptools, tokenize;__file__='"'"'/private/var/folders/f2/bzrj46j11gzdk19j91tp1sq80000gq/T/pip-install-lahb8lq4/pycairo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/f2/bzrj46j11gzdk19j91tp1sq80000gq/T/pip-wheel-scnvplas --python-tag cp36:
  ERROR: running bdist_wheel
  running build
  running build_py
  creating …
Run Code Online (Sandbox Code Playgroud)

python pip pkg-config pycairo

6
推荐指数
1
解决办法
6765
查看次数

如何提供 C 库以在 NixOS 上堆栈?

我有一个基于堆栈的项目,它依赖于几个 C 库。其中一个 C 库 zlib 可从原生 NixOS 包中获得,我可以将其放入 stack.yaml 的 nix 部分:

nix:
  enable: true
  packages:
    - "zlib"
Run Code Online (Sandbox Code Playgroud)

另一个不是nixpkgs 的一部分。堆栈文档建议使用 中的nix部分的替代方法stack.yaml是“编写 shell.nix”而无需详细说明。

于是写了一篇,坚持以zlib为例:

{ pkgs ? import <nixpkgs> { } }:
  pkgs.mkShell {
    buildInputs = [
      pkgs.pkgconfig
      pkgs.zlib
      pkgs.stack
    ];
  }
Run Code Online (Sandbox Code Playgroud)

这为我提供了 zlib 的工作 pkg-config:

[nix-shell:~/Work/PrivateStorage/PaymentServer]$ pkg-config --modversion zlib
1.2.11
Run Code Online (Sandbox Code Playgroud)

但是,似乎并没有让堆栈能够找到库:

[nix-shell:~/Work/PrivateStorage/PaymentServer]$ stack build
zlib-0.6.2: configure
Progress 1/7

--  While building package zlib-0.6.2 using:
      /home/exarkun/.stack/setup-exe-cache/x86_64-linux-nix/Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.5 --builddir=.stack-work/dist/x86_64-linux-nix/Cabal-2.4.0.1 configure --with-ghc=/nix/store/zfpm9bai9gj8vs09s2i2gkhvgsjkx13z-ghc-8.6.5/bin/ghc --with-ghc-pkg=/nix/store/zfpm9bai9gj8vs09s2i2gkhvgsjkx13z-ghc-8.6.5/bin/ghc-pkg --user --package-db=clear --package-db=global --package-db=/home/exarkun/.stack/snapshots/x86_64-linux-nix/lts-14.1/8.6.5/pkgdb …
Run Code Online (Sandbox Code Playgroud)

haskell compiler-errors pkg-config nixos haskell-stack

6
推荐指数
1
解决办法
745
查看次数