Compilation 在FreeBSD下链接端口库

Compilation 在FreeBSD下链接端口库,compilation,linker,freebsd,Compilation,Linker,Freebsd,我通过FreeBSD 11.2下的ports集合构建了一些库(gtk3,qt5,…)。为了测试它们,我只构建了最少的示例。每次链接器抱怨找不到这些库时 如果我错了,请纠正我,但是在FreeBSD下,常规软件包(使用pkg设置的软件包)安装在/usr/include和/usr/lib下,但是默认情况下,端口位于/usr/local/include和/usr/local/lib下 有没有简单的方法告诉编译器在这些目录下搜索,而不是使用带有-I和-L选项的大型编译命令 谢谢你的回答 编辑 这是我的CM

我通过FreeBSD 11.2下的ports集合构建了一些库(
gtk3
qt5
,…)。为了测试它们,我只构建了最少的示例。每次链接器抱怨找不到这些库时

如果我错了,请纠正我,但是在
FreeBSD
下,常规软件包(使用
pkg
设置的软件包)安装在
/usr/include
/usr/lib
下,但是默认情况下,端口位于
/usr/local/include
/usr/local/lib

有没有简单的方法告诉编译器在这些目录下搜索,而不是使用带有
-I
-L
选项的大型编译命令

谢谢你的回答

编辑 这是我的
CMakeLists.txt

cmake_minimum_required(VERSION 3.12)
project(gtk-test)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")

find_package(GTK3 REQUIRED)

include_directories(${GTK3_INCLUDE_DIRS})
link_directories(${GTK3_LIBRARY_DIRS})

add_executable(gtk-test gtk-test.c)
target_link_libraries(gtk-test ${GTK3_LIBRARIES})
我通过抓取以下
CMake
脚本解决了依赖性问题:

但是,出现了另一个问题:

[100%] Linking C executable gtk-test
/usr/lib/crt1.o: In function `_start':
crt1.c:(.text+0x91): undefined reference to `main'
collect2: error: ld returned 1 exit status
编辑 我很愚蠢,我甚至没有注意到示例中没有
main
函数。它工作正常,只是默认情况下,
CMake
无法定位
GTK3
库及其依赖项

以下是我的CMake配置脚本的内容:

Qt5         
Qt53DQuick      
Qt53DRender     
Qt5DataVisualization    
Qt5Location     
Qt5OpenGLExtensions 
Qt5QuickTest        
Qt5SerialBus        
Qt5UiPlugin     
Qt5WebKit       
Qt5XmlPatterns
Qt53DAnimation      
Qt53DQuickAnimation 
Qt5Bluetooth        
Qt5Designer     
Qt5Multimedia       
Qt5Positioning      
Qt5QuickWidgets     
Qt5SerialPort       
Qt5UiTools      
Qt5WebKitWidgets    
assimp-4.1
Qt53DCore       
Qt53DQuickExtras    
Qt5Charts       
Qt5Gamepad      
Qt5MultimediaWidgets    
Qt5PrintSupport     
Qt5Script       
Qt5Sql          
Qt5WebChannel       
Qt5WebSockets       
harfbuzz
Qt53DExtras     
Qt53DQuickInput     
Qt5Concurrent       
Qt5Gui          
Qt5Network      
Qt5Qml          
Qt5ScriptTools      
Qt5Svg          
Qt5WebEngine        
Qt5Widgets      
libxml2
Qt53DInput      
Qt53DQuickRender    
Qt5Core         
Qt5Help         
Qt5Nfc          
Qt5Quick        
Qt5Scxml        
Qt5Test         
Qt5WebEngineCore    
Qt5X11Extras
Qt53DLogic      
Qt53DQuickScene2D   
Qt5DBus         
Qt5LinguistTools    
Qt5OpenGL       
Qt5QuickControls2   
Qt5Sensors      
Qt5TextToSpeech     
Qt5WebEngineWidgets 
Qt5Xml

所有第三方软件都安装在
/usr/local
中。但是CMake应该意识到这一点,并且能够找到这些lib/头。您正在构建什么项目?@arrowd我正在尝试从gtk演示程序构建绘图区域。这将导致以下错误/usr/home/hadi/Desktop/gtk test/gtk test.c:1:10:致命错误:“未找到gtk/gtk.h”文件#include。我用了CMake。